Files
renovate/tools/lint/rules/no-hardcoded-docs-url.spec.ts
Sebastian Poxhofer e44c9a2070 ci(oxlint): move custom oxlint rules to typescript and alternative API (#45337)
* ci: move custom oxlint rules to typescript and alternative API

* ci: add  to test sharding
2026-08-19 05:37:56 +00:00

48 lines
1.4 KiB
TypeScript

import { RuleTester } from 'oxlint/plugins-dev';
import rule from './no-hardcoded-docs-url.ts';
RuleTester.describe = describe;
RuleTester.it = it;
const ruleTester = new RuleTester({
languageOptions: { parserOptions: { lang: 'ts' } },
});
ruleTester.run('no-hardcoded-docs-url', rule, {
valid: [
// unrelated string literals
`const url = 'https://example.com/docs';`,
// non-string literals
`const answer = 42;`,
`const flag = true;`,
// http, not https
`const url = 'http://docs.renovatebot.com';`,
// unrelated template literals
'const url = `https://example.com/${path}`;',
// the documented replacement
`const url = config.productLinks.documentation;`,
],
invalid: [
{
code: `const url = 'https://docs.renovatebot.com';`,
errors: [{ messageId: 'noHardcodedDocsUrl' }],
},
{
code: `const url = 'https://docs.renovatebot.com/configuration-options/';`,
errors: [{ messageId: 'noHardcodedDocsUrl' }],
},
{
code: `const msg = 'See https://docs.renovatebot.com for details';`,
errors: [{ messageId: 'noHardcodedDocsUrl' }],
},
{
code: 'const url = `https://docs.renovatebot.com/${page}`;',
errors: [{ messageId: 'noHardcodedDocsUrl' }],
},
{
code: 'const url = `${prefix}https://docs.renovatebot.com/x`;',
errors: [{ messageId: 'noHardcodedDocsUrl' }],
},
],
});