blob: 16c2d521dad0823cb937ef299e1d9302965bade3 (
plain)
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
|
const { test } = require('tap')
const requireInject = require('require-inject')
let pulseStarted = null
const npmlog = {
gauge: {
pulse: () => {
if (pulseStarted)
pulseStarted()
},
},
}
const pulseTillDone = requireInject('../../../lib/utils/pulse-till-done.js', {
npmlog,
})
test('pulses (with promise)', async (t) => {
t.teardown(() => {
pulseStarted = null
})
let resolver
const promise = new Promise(resolve => {
resolver = resolve
})
const result = pulseTillDone.withPromise(promise)
// wait until the gauge has fired at least once
await new Promise(resolve => {
pulseStarted = resolve
})
resolver('value')
t.resolveMatch(result, 'value', 'returned the resolved promise')
})
|