Files
renovate/tools/lint/rules/logger-static-message.spec.ts
Sebastian Poxhofer b2d3b64c48 refactor(lint): enforce err key for errors in logger metadata (#45759)
* refactor(lint): enforce err key for errors in logger metadata

* refactor(lint): flag error message and stack strings in logger-err-key
2026-09-09 13:55:14 +00:00

61 lines
1.8 KiB
TypeScript

import { RuleTester } from 'oxlint/plugins-dev';
import rule from './logger-static-message.ts';
RuleTester.describe = describe;
RuleTester.it = it;
const ruleTester = new RuleTester({
languageOptions: { parserOptions: { lang: 'ts' } },
});
ruleTester.run('logger-static-message', rule, {
valid: [
`logger.warn('Static message');`,
`logger.error({ url }, 'Failed to fetch');`,
`logger.fatal({ err }, 'Fatal error');`,
`logger.once.warn('Static message');`,
// non-flagged levels may interpolate
'logger.debug(`Fetching ${url}`);',
'logger.info(`Fetching ${url}`);',
// template literal without expressions is static
'logger.warn(`Static message`);',
// not a logger call
'other.warn(`Fetching ${url}`);',
`logger.warn();`,
// metadata keys are checked by logger-err-key, not here
`logger.error({ error: err }, 'Failed');`,
// computed member calls are ignored
`logger['warn']('Static message');`,
],
invalid: [
{
code: 'logger.warn(`Failed to fetch ${url}`);',
errors: [{ messageId: 'staticMessage' }],
},
{
code: 'logger.error(`Failed to fetch ${url}`);',
errors: [{ messageId: 'staticMessage' }],
},
{
code: 'logger.fatal(`Failed to fetch ${url}`);',
errors: [{ messageId: 'staticMessage' }],
},
{
code: 'logger.once.warn(`Failed to fetch ${url}`);',
errors: [{ messageId: 'staticMessage' }],
},
{
code: `logger.warn('Failed to fetch ' + url);`,
errors: [{ messageId: 'staticMessage' }],
},
{
code: 'logger.error({ url }, `Failed to fetch ${url}`);',
errors: [{ messageId: 'staticMessage' }],
},
{
code: 'logger.error({ err }, `Failed ${url}`);',
errors: [{ messageId: 'staticMessage' }],
},
],
});