Skip to content

Commit f28a1a6

Browse files
committed
tests(vest): Completely remove itWithContext
1 parent 47b07cd commit f28a1a6

File tree

3 files changed

+66
-78
lines changed

3 files changed

+66
-78
lines changed

packages/vest/src/core/test/__tests__/VestTest.test.ts

Lines changed: 66 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import wait from 'wait';
22

3-
import itWithContext from '../../../../testUtils/itWithContext';
4-
53
import VestTest from 'VestTest';
6-
import { useAllIncomplete, useTestObjects } from 'stateHooks';
4+
import { useAllIncomplete } from 'stateHooks';
75
import * as vest from 'vest';
86

97
const fieldName = 'unicycle';
@@ -92,57 +90,78 @@ describe('VestTest', () => {
9290
});
9391
});
9492

95-
itWithContext('Should be removed from the list of incomplete tests', () => {
96-
const [, setTestObjects] = useTestObjects();
97-
setTestObjects(({ prev, current }) => ({
98-
prev,
99-
current: current.concat(testObject),
100-
}));
101-
testObject.setPending();
102-
{
103-
const allIncomplete = useAllIncomplete();
104-
105-
expect(allIncomplete).toEqual(expect.arrayContaining([testObject]));
106-
}
107-
testObject.cancel();
108-
{
109-
const allIncomplete = useAllIncomplete();
110-
expect(allIncomplete).toEqual(expect.not.arrayContaining([testObject]));
111-
}
93+
it('Should be removed from the list of incomplete tests', () => {
94+
const control = jest.fn();
95+
vest.create(() => {
96+
const testObject = vest.test('f1', async () => {
97+
await wait(100);
98+
});
99+
100+
expect(testObject.isPending()).toBe(true);
101+
{
102+
const allIncomplete = useAllIncomplete();
103+
104+
expect(allIncomplete).toEqual(expect.arrayContaining([testObject]));
105+
}
106+
testObject.cancel();
107+
{
108+
const allIncomplete = useAllIncomplete();
109+
expect(allIncomplete).toEqual(
110+
expect.not.arrayContaining([testObject])
111+
);
112+
}
113+
control();
114+
})();
115+
expect(control).toHaveBeenCalledTimes(1);
112116
});
113117

114118
describe('final statuses', () => {
115-
let testObject, fn;
119+
let control;
116120
beforeEach(() => {
117-
fn = jest.fn();
118-
testObject = new VestTest('field', fn);
121+
control = jest.fn();
119122
});
120-
itWithContext('keep status unchanged when `failed`', () => {
121-
testObject.fail();
122-
expect(testObject.isFailing()).toBe(true);
123-
testObject.skip();
124-
expect(testObject.isSkipped()).toBe(false);
125-
expect(testObject.isFailing()).toBe(true);
126-
testObject.cancel();
127-
expect(testObject.isCanceled()).toBe(false);
128-
expect(testObject.isFailing()).toBe(true);
129-
testObject.setPending();
130-
expect(testObject.isPending()).toBe(false);
131-
expect(testObject.isFailing()).toBe(true);
123+
it('keep status unchanged when `failed`', () => {
124+
vest.create(() => {
125+
// async so it is not a final status
126+
const testObject = vest.test('f1', async () => {
127+
await wait(100);
128+
});
129+
testObject.fail();
130+
expect(testObject.isFailing()).toBe(true);
131+
testObject.skip();
132+
expect(testObject.isSkipped()).toBe(false);
133+
expect(testObject.isFailing()).toBe(true);
134+
testObject.cancel();
135+
expect(testObject.isCanceled()).toBe(false);
136+
expect(testObject.isFailing()).toBe(true);
137+
testObject.setPending();
138+
expect(testObject.isPending()).toBe(false);
139+
expect(testObject.isFailing()).toBe(true);
140+
control();
141+
})();
142+
expect(control).toHaveBeenCalledTimes(1);
132143
});
133144

134-
itWithContext('keep status unchanged when `canceled`', () => {
135-
testObject.setStatus('CANCELED');
136-
expect(testObject.isCanceled()).toBe(true);
137-
testObject.fail();
138-
expect(testObject.isCanceled()).toBe(true);
139-
expect(testObject.isFailing()).toBe(false);
140-
testObject.skip();
141-
expect(testObject.isSkipped()).toBe(false);
142-
expect(testObject.isCanceled()).toBe(true);
143-
testObject.setPending();
144-
expect(testObject.isPending()).toBe(false);
145-
expect(testObject.isCanceled()).toBe(true);
145+
it('keep status unchanged when `canceled`', () => {
146+
vest.create(() => {
147+
// async so it is not a final status
148+
const testObject = vest.test('f1', async () => {
149+
await wait(100);
150+
});
151+
testObject.setStatus('CANCELED');
152+
expect(testObject.isCanceled()).toBe(true);
153+
testObject.fail();
154+
expect(testObject.isCanceled()).toBe(true);
155+
expect(testObject.isFailing()).toBe(false);
156+
testObject.skip();
157+
expect(testObject.isSkipped()).toBe(false);
158+
expect(testObject.isCanceled()).toBe(true);
159+
testObject.setPending();
160+
expect(testObject.isPending()).toBe(false);
161+
expect(testObject.isCanceled()).toBe(true);
162+
control();
163+
})();
164+
expect(control).toHaveBeenCalledTimes(1);
146165
});
147166
});
148167
});

packages/vest/testUtils/itWithContext.ts

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
import VestTest from 'VestTest';
22
import { useSetTests } from 'stateHooks';
33

4-
export function emptyTestObjects(): void {
5-
useSetTests(() => []);
6-
}
7-
8-
export function setTestObjects(...args: VestTest[]): void {
9-
useSetTests(() => [...args]);
10-
}
11-
124
export function addTestObject(addedTests: VestTest[] | VestTest): void {
135
useSetTests(tests => tests.concat(addedTests));
146
}

0 commit comments

Comments
 (0)