From 544993e6e81cc83678d4f0cdbb3f44bd9faeb52d Mon Sep 17 00:00:00 2001 From: Gareth Jones Date: Sun, 17 Oct 2021 10:48:48 +1300 Subject: [PATCH 1/3] test(require-hook): ensure that types are ignored --- src/rules/__tests__/require-hook.test.ts | 50 ++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/rules/__tests__/require-hook.test.ts b/src/rules/__tests__/require-hook.test.ts index d0dfbc702..b4041755c 100644 --- a/src/rules/__tests__/require-hook.test.ts +++ b/src/rules/__tests__/require-hook.test.ts @@ -250,3 +250,53 @@ ruleTester.run('require-hook', rule, { }, ], }); + +new TSESLint.RuleTester({ + parser: require.resolve('@typescript-eslint/parser'), +}).run('require-hook: typescript edition', rule, { + valid: [ + dedent` + import { myFn } from '../functions'; + + // todo: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/56545 + declare module 'eslint' { + namespace ESLint { + interface LintResult { + fatalErrorCount: number; + } + } + } + + test('myFn', () => { + expect(myFn()).toBe(1); + }); + `, + ], + invalid: [ + { + code: dedent` + import { setup } from '../test-utils'; + + // todo: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/56545 + declare module 'eslint' { + namespace ESLint { + interface LintResult { + fatalErrorCount: number; + } + } + } + + describe('some tests', () => { + setup(); + }); + `, + errors: [ + { + messageId: 'useHook', + line: 13, + column: 3, + }, + ], + }, + ], +}); From f4c58a1055c9f3d180e3906468bc5812e1bfabfc Mon Sep 17 00:00:00 2001 From: Gareth Jones Date: Sun, 17 Oct 2021 10:50:29 +1300 Subject: [PATCH 2/3] docs(require-hook): ensure classes are allowed --- docs/rules/require-hook.md | 1 + src/rules/__tests__/require-hook.test.ts | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/docs/rules/require-hook.md b/docs/rules/require-hook.md index 473749317..68279536d 100644 --- a/docs/rules/require-hook.md +++ b/docs/rules/require-hook.md @@ -20,6 +20,7 @@ directly within the body of a `describe`, _except_ for the following: - `import` statements - `const` variables - `let` _declarations_ +- Classes - Types - Calls to the standard Jest globals diff --git a/src/rules/__tests__/require-hook.test.ts b/src/rules/__tests__/require-hook.test.ts index b4041755c..bcedf97b8 100644 --- a/src/rules/__tests__/require-hook.test.ts +++ b/src/rules/__tests__/require-hook.test.ts @@ -32,6 +32,15 @@ ruleTester.run('require-hook', rule, { expect(myFn()).toBe(1); }); `, + dedent` + class MockLogger { + log() {} + } + + test('myFn', () => { + expect(myFn()).toBe(1); + }); + `, dedent` const { myFn } = require('../functions'); From 5a830bfc48dffed004946634c671949af73f0e0c Mon Sep 17 00:00:00 2001 From: Gareth Jones Date: Sun, 17 Oct 2021 10:52:06 +1300 Subject: [PATCH 3/3] test(require-hook): ensure imports are allowed --- src/rules/__tests__/require-hook.test.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/rules/__tests__/require-hook.test.ts b/src/rules/__tests__/require-hook.test.ts index bcedf97b8..795ee4264 100644 --- a/src/rules/__tests__/require-hook.test.ts +++ b/src/rules/__tests__/require-hook.test.ts @@ -32,6 +32,16 @@ ruleTester.run('require-hook', rule, { expect(myFn()).toBe(1); }); `, + { + code: dedent` + import { myFn } from '../functions'; + + test('myFn', () => { + expect(myFn()).toBe(1); + }); + `, + parserOptions: { sourceType: 'module' }, + }, dedent` class MockLogger { log() {}