-
Notifications
You must be signed in to change notification settings - Fork 227
/
no-hooks.test.ts
60 lines (58 loc) · 1.46 KB
/
no-hooks.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import { TSESLint } from '@typescript-eslint/experimental-utils';
import rule from '../no-hooks';
import { HookName } from '../tsUtils';
const ruleTester = new TSESLint.RuleTester({
parserOptions: {
ecmaVersion: 6,
},
});
ruleTester.run('no-hooks', rule, {
valid: [
'test("foo")',
'describe("foo", () => { it("bar") })',
'test("foo", () => { expect(subject.beforeEach()).toBe(true) })',
{
code: 'afterEach(() => {}); afterAll(() => {});',
options: [{ allow: [HookName.afterEach, HookName.afterAll] }],
},
],
invalid: [
{
code: 'beforeAll(() => {})',
errors: [
{ messageId: 'unexpectedHook', data: { hookName: HookName.beforeAll } },
],
},
{
code: 'beforeEach(() => {})',
errors: [
{
messageId: 'unexpectedHook',
data: { hookName: HookName.beforeEach },
},
],
},
{
code: 'afterAll(() => {})',
errors: [
{ messageId: 'unexpectedHook', data: { hookName: HookName.afterAll } },
],
},
{
code: 'afterEach(() => {})',
errors: [
{ messageId: 'unexpectedHook', data: { hookName: HookName.afterEach } },
],
},
{
code: 'beforeEach(() => {}); afterEach(() => { jest.resetModules() });',
options: [{ allow: [HookName.afterEach] }],
errors: [
{
messageId: 'unexpectedHook',
data: { hookName: HookName.beforeEach },
},
],
},
],
});