-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpromises.spec.ts
More file actions
30 lines (26 loc) · 873 Bytes
/
promises.spec.ts
File metadata and controls
30 lines (26 loc) · 873 Bytes
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
import { fork, forks, FakePromise, settleForks } from './promises';
describe('promises', () => {
test('ends properly', async () => {
let resolve1: any;
const promise = new Promise(r => resolve1 = r);
const wrapped = fork(promise, 'test');
expect(forks.size).toBe(1);
let t2 = 0;
let resolve2: any;
const w2 = wrapped.then(() => {
t2 = 1;
return new Promise(r => resolve2 = r);
});
expect(forks.size).toBe(2);
resolve1();
await settleForks();
expect(forks.size).toBe(1);
expect(wrapped.ended).toBe(true);
expect(t2).toBe(1);
expect((w2 as FakePromise).ended).toBe(false);
resolve2();
await settleForks();
expect(forks.size).toBe(0);
expect((w2 as FakePromise).ended).toBe(true);
});
});