deno.land / x / replicache@v10.0.0-beta.0 / sleep.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
import {expect} from '@esm-bundle/chai';import {SinonFakeTimers, useFakeTimers} from 'sinon';import {sleep} from './sleep';import {AbortError} from './abort-error';
let clock: SinonFakeTimers;setup(() => { clock = useFakeTimers(0);});
teardown(() => { clock.restore();});
test('sleep', async () => { let callCount = 0; const p = (async () => { await sleep(100); callCount++; })(); await clock.tickAsync(99); expect(Date.now()).to.equal(99); expect(callCount).to.equal(0);
await clock.tickAsync(1); expect(callCount).to.equal(1); expect(Date.now()).to.equal(100);
await clock.tickAsync(100); expect(callCount).to.equal(1); expect(Date.now()).to.equal(200);
await p; expect(Date.now()).to.equal(200);});
test('sleep abort', async () => { const controller = new AbortController(); const p = sleep(100, controller.signal); controller.abort(); let e; try { expect(Date.now()).to.equal(0); await p; } catch (err) { e = err; } expect(Date.now()).to.equal(0);
expect(e).to.be.instanceof(AbortError);
await clock.tickAsync(100); expect(Date.now()).to.equal(100);
await clock.tickAsync(100); expect(Date.now()).to.equal(200);});
replicache

Version Info

Tagged at
2 years ago