-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
test.js
52 lines (41 loc) · 1.11 KB
/
test.js
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
import test from 'ava';
import delay from 'delay';
import inRange from 'in-range';
import {hookStdout} from 'hook-std';
import pTime from './index.js';
test('then', async t => {
const timedDelay = pTime(delay);
const promise = timedDelay(200);
await promise;
t.true(inRange(promise.time, {start: 180, end: 250}));
});
test('catch', async t => {
const timedDelay = pTime(delay);
const promise = timedDelay(200);
try {
await promise.then(() => {
throw new Error('fixture');
});
} catch {}
t.true(inRange(promise.time, {start: 180, end: 250}));
});
test.serial('log', async t => {
const myDelay = ms => new Promise(resolve => {
setTimeout(resolve, ms);
});
const promise = hookStdout({silent: true}, (output, unhook) => {
unhook();
t.regex(output, /Promise from myDelay resolved in \d+ ms/);
});
pTime.log(myDelay)(200);
await promise;
});
test.serial('log aynonymous function', async t => {
const promise = hookStdout({silent: true}, (output, unhook) => {
unhook();
t.regex(output, /Promise from \[anonymous] resolved in \d+ ms/);
t.end();
});
pTime.log(delay)(200);
await promise;
});