Welcome to mirror list, hosted at ThFree Co, Russian Federation.

pulse-till-done.js « utils « lib « test - github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
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')
})