Improves this https://github.com/payloadcms/payload/pull/8578 to work with template literals as well, This is invalid: ```ts this.payload.logger.error('Failed to create database', err) ``` But this is valid: ```ts this.payload.logger.error(`Failed to create database ${dbName}`, err) ``` This PR fixes that <img width="577" alt="image" src="https://github.com/user-attachments/assets/b867da53-4f81-4b1b-8423-598e0419946a">
86 lines
2.2 KiB
JavaScript
86 lines
2.2 KiB
JavaScript
import { RuleTester } from 'eslint'
|
|
import rule from '../customRules/proper-payload-logger-usage.js'
|
|
|
|
const ruleTester = new RuleTester()
|
|
|
|
// Example tests for the rule
|
|
ruleTester.run('no-improper-payload-logger-error', rule, {
|
|
valid: [
|
|
// Valid: payload.logger.error with object containing { msg, err }
|
|
{
|
|
code: "payload.logger.error({ msg: 'some message', err })",
|
|
},
|
|
// Valid: payload.logger.error with a single string
|
|
{
|
|
code: "payload.logger.error('Some error message')",
|
|
},
|
|
// Valid: payload.logger.error with a templated string
|
|
{
|
|
code: 'payload.logger.error(`Some error message`)',
|
|
},
|
|
// Valid: *.payload.logger.error with object
|
|
{
|
|
code: "this.payload.logger.error({ msg: 'another message', err })",
|
|
},
|
|
{
|
|
code: "args.req.payload.logger.error({ msg: 'different message', err })",
|
|
},
|
|
],
|
|
|
|
invalid: [
|
|
// Invalid: payload.logger.error with both string and error
|
|
{
|
|
code: "payload.logger.error('Some error message', err)",
|
|
errors: [
|
|
{
|
|
messageId: 'improperUsage',
|
|
},
|
|
],
|
|
},
|
|
// Invalid: payload.logger.error with both templated string and error
|
|
{
|
|
code: 'payload.logger.error(`Some error message`, err)',
|
|
errors: [
|
|
{
|
|
messageId: 'improperUsage',
|
|
},
|
|
],
|
|
},
|
|
// Invalid: *.payload.logger.error with both string and error
|
|
{
|
|
code: "this.payload.logger.error('Some error message', error)",
|
|
errors: [
|
|
{
|
|
messageId: 'improperUsage',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
code: "args.req.payload.logger.error('Some error message', err)",
|
|
errors: [
|
|
{
|
|
messageId: 'improperUsage',
|
|
},
|
|
],
|
|
},
|
|
// Invalid: payload.logger.error with object containing 'message' key
|
|
{
|
|
code: "payload.logger.error({ message: 'not the right property name' })",
|
|
errors: [
|
|
{
|
|
messageId: 'wrongMessageField',
|
|
},
|
|
],
|
|
},
|
|
// Invalid: *.payload.logger.error with object containing 'error' key
|
|
{
|
|
code: "this.payload.logger.error({ msg: 'another message', error })",
|
|
errors: [
|
|
{
|
|
messageId: 'wrongErrorField',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
})
|