From 9bfacfb04c9cea39129a20a5c13ed5feecfcc884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=AF=E7=84=B6?= Date: Tue, 12 Dec 2023 17:48:45 +0800 Subject: [PATCH 1/3] feat: change test-case-property-ordering to add supports languageOptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fixes #402 Signed-off-by: 唯然 --- lib/rules/test-case-property-ordering.js | 3 ++- .../lib/rules/test-case-property-ordering.js | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/rules/test-case-property-ordering.js b/lib/rules/test-case-property-ordering.js index 73cb700f..335ec1dd 100644 --- a/lib/rules/test-case-property-ordering.js +++ b/lib/rules/test-case-property-ordering.js @@ -45,7 +45,8 @@ module.exports = { 'output', 'options', 'parser', - 'parserOptions', + 'languageOptions', // used in eslint flat config + 'parserOptions', // used in eslintrc config 'globals', 'env', 'errors', diff --git a/tests/lib/rules/test-case-property-ordering.js b/tests/lib/rules/test-case-property-ordering.js index cb20b85c..149278d1 100644 --- a/tests/lib/rules/test-case-property-ordering.js +++ b/tests/lib/rules/test-case-property-ordering.js @@ -214,5 +214,27 @@ ruleTester.run('test-case-property-ordering', rule, { }, ], }, + { + code: ` + new RuleTester().run('foo', bar, { + valid: [ + {\ncode: "foo",\noutput: "",\nerrors: ["baz"],\nlanguageOptions: "",\n}, + ] + }); + `, + output: ` + new RuleTester().run('foo', bar, { + valid: [ + {\ncode: "foo",\noutput: "",\nlanguageOptions: "",\nerrors: ["baz"],\n}, + ] + }); + `, + errors: [ + { + message: + 'The properties of a test case should be placed in a consistent order: [code, output, languageOptions, errors].', + }, + ], + }, ], }); From d05a2d1cacc0cce5539d1d28d21d06169ea1cb09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=AF=E7=84=B6?= Date: Tue, 9 Apr 2024 13:28:43 +0800 Subject: [PATCH 2/3] Update test-case-property-ordering.js --- lib/rules/test-case-property-ordering.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/rules/test-case-property-ordering.js b/lib/rules/test-case-property-ordering.js index 335ec1dd..5b8542c5 100644 --- a/lib/rules/test-case-property-ordering.js +++ b/lib/rules/test-case-property-ordering.js @@ -45,10 +45,10 @@ module.exports = { 'output', 'options', 'parser', - 'languageOptions', // used in eslint flat config - 'parserOptions', // used in eslintrc config - 'globals', - 'env', + 'languageOptions', // flat-mode only + 'parserOptions', // eslintrc-mode only + 'globals', // eslintrc-mode only + 'env', // eslintrc-mode only 'errors', ]; const sourceCode = context.sourceCode || context.getSourceCode(); // TODO: just use context.sourceCode when dropping eslint < v9 From 0b9df5e801806579205c17e1827195fe0fa5710f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=AF=E7=84=B6?= Date: Wed, 10 Apr 2024 10:11:54 +0800 Subject: [PATCH 3/3] chore: apply eslint --fix --- tests/lib/rules/meta-property-ordering.js | 2 +- tests/lib/rules/no-identical-tests.js | 2 +- tests/lib/rules/no-missing-message-ids.js | 2 +- tests/lib/rules/no-unused-message-ids.js | 2 +- tests/lib/rules/prefer-message-ids.js | 2 +- tests/lib/rules/prefer-object-rule.js | 8 ++++---- tests/lib/rules/require-meta-docs-description.js | 2 +- tests/lib/rules/require-meta-docs-url.js | 4 ++-- tests/lib/rules/require-meta-fixable.js | 2 +- tests/lib/rules/require-meta-has-suggestions.js | 2 +- tests/lib/rules/require-meta-schema.js | 2 +- tests/lib/rules/require-meta-type.js | 2 +- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/tests/lib/rules/meta-property-ordering.js b/tests/lib/rules/meta-property-ordering.js index e5e8bce4..1d4dfec8 100644 --- a/tests/lib/rules/meta-property-ordering.js +++ b/tests/lib/rules/meta-property-ordering.js @@ -126,13 +126,13 @@ ruleTester.run('test-case-property-ordering', rule, { }, create() {}, };`, + languageOptions: { sourceType: 'module' }, errors: [ { messageId: 'inconsistentOrder', data: { order: ['type', 'docs', 'fixable'].join(', ') }, }, ], - languageOptions: { sourceType: 'module' }, }, { code: ` diff --git a/tests/lib/rules/no-identical-tests.js b/tests/lib/rules/no-identical-tests.js index 6bcf4419..6f0e444e 100644 --- a/tests/lib/rules/no-identical-tests.js +++ b/tests/lib/rules/no-identical-tests.js @@ -234,8 +234,8 @@ ruleTester.run('no-identical-tests', rule, { }); } `, - errors: [{ messageId: 'identical', type: 'TemplateLiteral' }], languageOptions: { ecmaVersion: 2015 }, + errors: [{ messageId: 'identical', type: 'TemplateLiteral' }], }, ], }); diff --git a/tests/lib/rules/no-missing-message-ids.js b/tests/lib/rules/no-missing-message-ids.js index e8e2df0e..78b9e600 100644 --- a/tests/lib/rules/no-missing-message-ids.js +++ b/tests/lib/rules/no-missing-message-ids.js @@ -323,6 +323,7 @@ ruleTester.run('no-missing-message-ids', rule, { } }; `, + languageOptions: { sourceType: 'module' }, errors: [ { messageId: 'missingMessage', @@ -330,7 +331,6 @@ ruleTester.run('no-missing-message-ids', rule, { type: 'Literal', }, ], - languageOptions: { sourceType: 'module' }, }, { // Helper function with messageId parameter, inside rule, with missing messageId due to parameter reassignment. diff --git a/tests/lib/rules/no-unused-message-ids.js b/tests/lib/rules/no-unused-message-ids.js index ea7b724e..8f5f6fa8 100644 --- a/tests/lib/rules/no-unused-message-ids.js +++ b/tests/lib/rules/no-unused-message-ids.js @@ -325,6 +325,7 @@ ruleTester.run('no-unused-message-ids', rule, { } }; `, + languageOptions: { sourceType: 'module' }, errors: [ { messageId: 'unusedMessage', @@ -332,7 +333,6 @@ ruleTester.run('no-unused-message-ids', rule, { type: 'Property', }, ], - languageOptions: { sourceType: 'module' }, }, { // `meta` / `create` in variables diff --git a/tests/lib/rules/prefer-message-ids.js b/tests/lib/rules/prefer-message-ids.js index 4f01f5b1..ac54184e 100644 --- a/tests/lib/rules/prefer-message-ids.js +++ b/tests/lib/rules/prefer-message-ids.js @@ -161,8 +161,8 @@ ruleTester.run('prefer-message-ids', rule, { } }; `, - errors: [{ messageId: 'foundMessage', type: 'Property' }], languageOptions: { sourceType: 'module' }, + errors: [{ messageId: 'foundMessage', type: 'Property' }], }, { // With message in variable. diff --git a/tests/lib/rules/prefer-object-rule.js b/tests/lib/rules/prefer-object-rule.js index fbc4fa50..9c0aae74 100644 --- a/tests/lib/rules/prefer-object-rule.js +++ b/tests/lib/rules/prefer-object-rule.js @@ -143,27 +143,27 @@ ruleTester.run('prefer-object-rule', rule, { return { Program() { context.report() } }; }}; `, - errors: [{ messageId: 'preferObject', line: 2, column: 24 }], languageOptions: { sourceType: 'module' }, + errors: [{ messageId: 'preferObject', line: 2, column: 24 }], }, { code: 'export default function create(context) { return {}; };', output: 'export default {create(context) { return {}; }};', - errors: [{ messageId: 'preferObject', line: 1, column: 16 }], languageOptions: { sourceType: 'module' }, + errors: [{ messageId: 'preferObject', line: 1, column: 16 }], }, { code: 'export default (context) => { return {}; };', output: 'export default {create: (context) => { return {}; }};', - errors: [{ messageId: 'preferObject', line: 1, column: 16 }], languageOptions: { sourceType: 'module' }, + errors: [{ messageId: 'preferObject', line: 1, column: 16 }], }, { code: 'const rule = (context) => { return {}; }; export default rule;', output: 'const rule = {create: (context) => { return {}; }}; export default rule;', - errors: [{ messageId: 'preferObject', line: 1, column: 14 }], languageOptions: { sourceType: 'module' }, + errors: [{ messageId: 'preferObject', line: 1, column: 14 }], }, ], }); diff --git a/tests/lib/rules/require-meta-docs-description.js b/tests/lib/rules/require-meta-docs-description.js index 721cd626..2b4ded37 100644 --- a/tests/lib/rules/require-meta-docs-description.js +++ b/tests/lib/rules/require-meta-docs-description.js @@ -159,8 +159,8 @@ ruleTester.run('require-meta-docs-description', rule, { }; `, output: null, - errors: [{ messageId: 'missing', type: 'ObjectExpression' }], languageOptions: { sourceType: 'module' }, + errors: [{ messageId: 'missing', type: 'ObjectExpression' }], }, { code: ` diff --git a/tests/lib/rules/require-meta-docs-url.js b/tests/lib/rules/require-meta-docs-url.js index 9d29b177..da7a9048 100644 --- a/tests/lib/rules/require-meta-docs-url.js +++ b/tests/lib/rules/require-meta-docs-url.js @@ -733,8 +733,8 @@ url: "plugin-name/test.md" pattern: 'plugin-name/{{ name }}.md', }, ], - errors: [{ messageId: 'missing', type: 'ObjectExpression' }], languageOptions: { sourceType: 'module' }, + errors: [{ messageId: 'missing', type: 'ObjectExpression' }], }, { // TypeScript @@ -756,8 +756,8 @@ url: "plugin-name/test.md" } `, options: [{ pattern: 'plugin-name/{{ name }}.md' }], - errors: [{ messageId: 'missing', type: 'ObjectExpression' }], languageOptions: { sourceType: 'module' }, + errors: [{ messageId: 'missing', type: 'ObjectExpression' }], }, { filename: 'test.js', diff --git a/tests/lib/rules/require-meta-fixable.js b/tests/lib/rules/require-meta-fixable.js index dfc7d7ff..8aef6c04 100644 --- a/tests/lib/rules/require-meta-fixable.js +++ b/tests/lib/rules/require-meta-fixable.js @@ -253,8 +253,8 @@ ruleTester.run('require-meta-fixable', rule, { create(context) { context.report({node, message, fix: foo}); } }; `, - errors: [{ messageId: 'missing', type: 'ObjectExpression' }], languageOptions: { sourceType: 'module' }, + errors: [{ messageId: 'missing', type: 'ObjectExpression' }], }, { code: ` diff --git a/tests/lib/rules/require-meta-has-suggestions.js b/tests/lib/rules/require-meta-has-suggestions.js index 3a96ea59..0a1e96ab 100644 --- a/tests/lib/rules/require-meta-has-suggestions.js +++ b/tests/lib/rules/require-meta-has-suggestions.js @@ -291,6 +291,7 @@ ruleTester.run('require-meta-has-suggestions', rule, { }; `, output: null, + languageOptions: { sourceType: 'module' }, errors: [ { messageId: 'shouldBeSuggestable', @@ -301,7 +302,6 @@ ruleTester.run('require-meta-has-suggestions', rule, { endColumn: 78, }, ], - languageOptions: { sourceType: 'module' }, }, { // Reports suggestions, no hasSuggestions property, violation should be on `meta` object, empty meta object. diff --git a/tests/lib/rules/require-meta-schema.js b/tests/lib/rules/require-meta-schema.js index 8903d1fd..dfb1754d 100644 --- a/tests/lib/rules/require-meta-schema.js +++ b/tests/lib/rules/require-meta-schema.js @@ -256,6 +256,7 @@ schema: [] }; `, output: null, + languageOptions: { sourceType: 'module' }, errors: [ { messageId: 'missing', @@ -275,7 +276,6 @@ schema: [] ], }, ], - languageOptions: { sourceType: 'module' }, }, { code: ` diff --git a/tests/lib/rules/require-meta-type.js b/tests/lib/rules/require-meta-type.js index ecb99ec0..2180e23e 100644 --- a/tests/lib/rules/require-meta-type.js +++ b/tests/lib/rules/require-meta-type.js @@ -117,8 +117,8 @@ ruleTester.run('require-meta-type', rule, { create(context) {} }; `, - errors: [{ messageId: 'missing', type: 'ObjectExpression' }], languageOptions: { sourceType: 'module' }, + errors: [{ messageId: 'missing', type: 'ObjectExpression' }], }, { code: `