Skip to content

Commit 8088d85

Browse files
committed
fix(MockInstance): resetting scopes on each level
1 parent c312d17 commit 8088d85

2 files changed

Lines changed: 114 additions & 0 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
let globalVar = 0;
2+
3+
const backupTest = (newValue: typeof globalVar): void => {
4+
let backup: typeof globalVar;
5+
6+
beforeEach(() => {
7+
backup = globalVar;
8+
globalVar = newValue;
9+
});
10+
11+
afterEach(() => {
12+
globalVar = backup;
13+
});
14+
};
15+
16+
describe('mock-instance-reset:backup', () => {
17+
it('equals 0 before all', () => {
18+
expect(globalVar).toEqual(0);
19+
});
20+
21+
describe('globalVar', () => {
22+
backupTest(1);
23+
backupTest(2);
24+
25+
it('equals 2 before each', () => {
26+
expect(globalVar).toEqual(2);
27+
});
28+
29+
describe('each', () => {
30+
backupTest(3);
31+
backupTest(4);
32+
33+
it('equals 4 after each', () => {
34+
expect(globalVar).toEqual(4);
35+
});
36+
});
37+
38+
it('resets to 2 after each', () => {
39+
expect(globalVar).toEqual(2);
40+
});
41+
});
42+
43+
it('resets to 0 after all', () => {
44+
expect(globalVar).toEqual(0);
45+
});
46+
});
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
const triggers: string[] = [];
2+
3+
describe('mock-instance-reset', () => {
4+
describe('test', () => {
5+
beforeAll(() => triggers.push('beforeAll:1'));
6+
afterAll(() => triggers.push('afterAll:1'));
7+
8+
beforeAll(() => triggers.push('beforeAll:2'));
9+
afterAll(() => triggers.push('afterAll:2'));
10+
11+
beforeEach(() => triggers.push('beforeEach:1'));
12+
beforeEach(() => triggers.push('beforeEach:2'));
13+
14+
afterEach(() => triggers.push('afterEach:1'));
15+
afterEach(() => triggers.push('afterEach:2'));
16+
17+
it('triggers test #1', () => {
18+
expect(1).toEqual(1);
19+
});
20+
21+
it('triggers test #2', () => {
22+
expect(2).toEqual(2);
23+
});
24+
25+
describe('nested', () => {
26+
beforeAll(() => triggers.push('beforeAll:3'));
27+
afterAll(() => triggers.push('afterAll:3'));
28+
29+
beforeEach(() => triggers.push('beforeEach:3'));
30+
afterEach(() => triggers.push('afterEach:3'));
31+
32+
it('triggers test #3', () => {
33+
expect(3).toEqual(3);
34+
});
35+
});
36+
});
37+
38+
it('has expected order', () => {
39+
// first before is called the first
40+
// first after is called the last
41+
expect(triggers).toEqual([
42+
'beforeAll:1',
43+
'beforeAll:2',
44+
45+
'beforeEach:1',
46+
'beforeEach:2',
47+
'afterEach:2',
48+
'afterEach:1',
49+
50+
'beforeEach:1',
51+
'beforeEach:2',
52+
'afterEach:2',
53+
'afterEach:1',
54+
55+
'beforeAll:3',
56+
'beforeEach:1',
57+
'beforeEach:2',
58+
'beforeEach:3',
59+
'afterEach:3',
60+
'afterEach:2',
61+
'afterEach:1',
62+
'afterAll:3',
63+
64+
'afterAll:2',
65+
'afterAll:1',
66+
]);
67+
});
68+
});

0 commit comments

Comments
 (0)