Skip to content

Commit c97ee1e

Browse files
authored
test(use-dataloader): wait for expect instead of trusting setImmediate (#571)
* test(use-dataloader): wait for expect instead of trusting setImmediate * fix: exact
1 parent 07d2314 commit c97ee1e

File tree

3 files changed

+20
-13
lines changed

3 files changed

+20
-13
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
"rollup": "2.62.0",
3737
"rollup-plugin-dts": "4.1.0",
3838
"rollup-plugin-visualizer": "5.5.2",
39-
"typescript": "4.5.4"
39+
"typescript": "4.5.4",
40+
"wait-for-expect": "3.0.2"
4041
},
4142
"scripts": {
4243
"lint": "eslint --ext js,ts,tsx --cache .",

packages/use-dataloader/src/__tests__/dataloader.test.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { nextTick } from 'process';
2+
import waitForExpect from 'wait-for-expect'
13
import { StatusEnum } from '../constants'
24
import DataLoader from '../dataloader'
35

@@ -203,16 +205,15 @@ describe('Dataloader class', () => {
203205
expect(method).toBeCalledTimes(3)
204206
await instance.load()
205207
await instance.load()
206-
await new Promise(resolve => {
207-
setTimeout(resolve)
208-
})
208+
await new Promise(nextTick)
209209
expect(method).toBeCalledTimes(4)
210210
await instance.load()
211211
await instance.load()
212212
await instance.load(true)
213213
await new Promise(resolve => {
214214
setTimeout(resolve)
215215
})
216+
await new Promise(nextTick)
216217
expect(method).toBeCalledTimes(6)
217218
instance.setPollingInterval(PROMISE_TIMEOUT * 4)
218219
await instance.destroy()
@@ -238,17 +239,15 @@ describe('Dataloader class', () => {
238239
expect(method).toBeCalledTimes(3)
239240
await instance.load()
240241
await instance.load()
241-
await new Promise(resolve => {
242-
setTimeout(resolve)
242+
await waitForExpect(() => {
243+
expect(method).toBeCalledTimes(4)
243244
})
244-
expect(method).toBeCalledTimes(4)
245245
await instance.load()
246246
await instance.load()
247247
await instance.load(true)
248-
await new Promise(resolve => {
249-
setTimeout(resolve)
248+
await waitForExpect(() => {
249+
expect(method).toBeCalledTimes(6)
250250
})
251-
expect(method).toBeCalledTimes(6)
252251
instance.setPollingInterval(PROMISE_TIMEOUT * 4)
253252
await instance.destroy()
254253
})
@@ -310,9 +309,8 @@ describe('Dataloader class', () => {
310309
expect(instance.status).toBe(StatusEnum.LOADING)
311310
}
312311
// Because wait for setTimeout tryLaunch in dataloader.ts
313-
await new Promise(resolve => {
314-
setTimeout(resolve)
312+
await waitForExpect(() => {
313+
expect(method).toBeCalledTimes(2)
315314
})
316-
expect(method).toBeCalledTimes(2)
317315
})
318316
})

yarn.lock

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10147,6 +10147,7 @@ __metadata:
1014710147
rollup-plugin-dts: 4.1.0
1014810148
rollup-plugin-visualizer: 5.5.2
1014910149
typescript: 4.5.4
10150+
wait-for-expect: 3.0.2
1015010151
languageName: unknown
1015110152
linkType: soft
1015210153

@@ -11450,6 +11451,13 @@ __metadata:
1145011451
languageName: node
1145111452
linkType: hard
1145211453

11454+
"wait-for-expect@npm:3.0.2":
11455+
version: 3.0.2
11456+
resolution: "wait-for-expect@npm:3.0.2"
11457+
checksum: 2ec1ebd78023fa10bdcf53d78bbd65feea68fdfa0de0b00f3a72f3df089118b91517839ff3926e5ef6cfd1ede65085326d85b0378d4db62c266cc9c859c2de56
11458+
languageName: node
11459+
linkType: hard
11460+
1145311461
"walker@npm:^1.0.7":
1145411462
version: 1.0.8
1145511463
resolution: "walker@npm:1.0.8"

0 commit comments

Comments
 (0)