diff --git a/packages/eslint-plugin/tests/eslint-rules/no-use-before-define.test.ts b/packages/eslint-plugin/tests/eslint-rules/no-use-before-define.test.ts deleted file mode 100644 index 4571cd04afb..00000000000 --- a/packages/eslint-plugin/tests/eslint-rules/no-use-before-define.test.ts +++ /dev/null @@ -1,85 +0,0 @@ -import rule from 'eslint/lib/rules/no-use-before-define'; -import { RuleTester } from '../RuleTester'; - -const ruleTester = new RuleTester({ - parserOptions: { - ecmaVersion: 6, - sourceType: 'module', - ecmaFeatures: {}, - }, - parser: '@typescript-eslint/parser', -}); - -ruleTester.run('no-use-before-define', rule, { - valid: [ - ` -const updatedAt = data?.updatedAt; - `, - ` -function f() { - return function t() {}; -} -f()?.(); - `, - ` -var a = { b: 5 }; -alert(a?.b); - `, - ], - invalid: [ - { - code: ` -f(); -function f() {} - `, - errors: [ - { - message: "'f' was used before it was defined.", - // the base rule doesn't use messageId - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any, - ], - }, - { - code: ` -alert(a); -var a = 10; - `, - errors: [ - { - message: "'a' was used before it was defined.", - // the base rule doesn't use messageId - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any, - ], - }, - { - code: ` -f()?.(); -function f() { - return function t() {}; -} - `, - errors: [ - { - message: "'f' was used before it was defined.", - // the base rule doesn't use messageId - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any, - ], - }, - { - code: ` -alert(a?.b); -var a = { b: 5 }; - `, - errors: [ - { - message: "'a' was used before it was defined.", - // the base rule doesn't use messageId - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } as any, - ], - }, - ], -}); diff --git a/packages/eslint-plugin/tests/rules/no-use-before-define.test.ts b/packages/eslint-plugin/tests/rules/no-use-before-define.test.ts index 9d9434397fd..70d91022816 100644 --- a/packages/eslint-plugin/tests/rules/no-use-before-define.test.ts +++ b/packages/eslint-plugin/tests/rules/no-use-before-define.test.ts @@ -22,6 +22,15 @@ const x: Foo = {}; 'function a() { alert(arguments);}', 'declare function a()', 'declare class a { foo() }', + `const updatedAt = data?.updatedAt;`, + ` +function f() { return function t() {}; } +f()?.(); + `, + ` +var a = { b: 5 }; +alert(a?.b); + `, { code: ` a(); @@ -239,11 +248,7 @@ enum Foo { FOO, } `, - options: [ - { - enums: false, - }, - ], + options: [{ enums: false }], }, { code: ` @@ -253,11 +258,7 @@ enum Foo { FOO, } `, - options: [ - { - enums: false, - }, - ], + options: [{ enums: false }], }, { code: ` @@ -271,11 +272,7 @@ enum Foo { FOO, } `, - options: [ - { - enums: false, - }, - ], + options: [{ enums: false }], }, ], invalid: [ @@ -288,9 +285,7 @@ var a=19; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -304,9 +299,7 @@ var a=19; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -319,9 +312,7 @@ var a=19; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -334,9 +325,7 @@ var a=function() {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -349,9 +338,7 @@ var a=[1,3]; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -368,16 +355,12 @@ function a() { errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, { messageId: 'noUseBeforeDefine', - data: { - name: 'b', - }, + data: { name: 'b' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -392,9 +375,7 @@ var a=function() {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -412,9 +393,7 @@ var a=function() {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -430,9 +409,7 @@ function a() { } errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -449,9 +426,7 @@ a(); errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -468,9 +443,7 @@ try { errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -484,9 +457,7 @@ var a; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -500,9 +471,7 @@ class A {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'A', - }, + data: { name: 'A' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -518,9 +487,7 @@ class A {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'A', - }, + data: { name: 'A' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -534,9 +501,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'A', - }, + data: { name: 'A' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -552,9 +517,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'A', - }, + data: { name: 'A' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -572,9 +535,7 @@ a++; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -591,9 +552,7 @@ a++; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -609,9 +568,7 @@ a++; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -629,9 +586,7 @@ switch (foo) { errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -649,9 +604,7 @@ if (true) { errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -667,9 +620,7 @@ var a=function() {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -684,9 +635,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'A', - }, + data: { name: 'A' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -703,9 +652,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'A', - }, + data: { name: 'A' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -717,9 +664,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -730,9 +675,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -743,9 +686,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -756,9 +697,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -769,9 +708,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -782,9 +719,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -795,9 +730,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -808,9 +741,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -821,9 +752,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -834,9 +763,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -846,9 +773,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -859,9 +784,7 @@ var A = class {}; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'a', - }, + data: { name: 'a' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -881,9 +804,7 @@ var bar; errors: [ { messageId: 'noUseBeforeDefine', - data: { - name: 'bar', - }, + data: { name: 'bar' }, type: AST_NODE_TYPES.Identifier, }, ], @@ -900,11 +821,7 @@ enum Foo { FOO, } `, - options: [ - { - enums: true, - }, - ], + options: [{ enums: true }], errors: [ { messageId: 'noUseBeforeDefine', @@ -921,11 +838,7 @@ enum Foo { FOO, } `, - options: [ - { - enums: true, - }, - ], + options: [{ enums: true }], errors: [ { messageId: 'noUseBeforeDefine', @@ -940,14 +853,60 @@ enum Foo { FOO, } `, - options: [ + options: [{ enums: true }], + errors: [ { - enums: true, + messageId: 'noUseBeforeDefine', }, ], + }, + { + code: ` +f(); +function f() {} + `, + errors: [ + { + messageId: 'noUseBeforeDefine', + data: { name: 'f' }, + }, + ], + }, + { + code: ` +alert(a); +var a = 10; + `, + errors: [ + { + messageId: 'noUseBeforeDefine', + data: { name: 'a' }, + }, + ], + }, + { + code: ` +f()?.(); +function f() { + return function t() {}; +} + `, + errors: [ + { + messageId: 'noUseBeforeDefine', + data: { name: 'f' }, + }, + ], + }, + { + code: ` +alert(a?.b); +var a = { b: 5 }; + `, errors: [ { messageId: 'noUseBeforeDefine', + data: { name: 'a' }, }, ], },