mirror of
https://github.com/renovatebot/renovate.git
synced 2026-10-31 01:37:24 +00:00
e44c9a2070
* ci: move custom oxlint rules to typescript and alternative API * ci: add to test sharding
48 lines
1.4 KiB
TypeScript
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' }],
|
|
},
|
|
],
|
|
});
|