summaryrefslogtreecommitdiff
path: root/test/parallel/test-promise-internal-creation.js
blob: 7142c872d9452e784f9347d90986f04e36fc633a (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
36
37
38
39
40
41
'use strict';
const common = require('../common');
const assert = require('assert');
const {
  createPromise, promiseResolve, promiseReject
} = process.binding('util');
const { inspect } = require('util');

common.crashOnUnhandledRejection();

{
  const promise = createPromise();
  assert.strictEqual(inspect(promise), 'Promise { <pending> }');
  promiseResolve(promise, 42);
  assert.strictEqual(inspect(promise), 'Promise { 42 }');
  promise.then(common.mustCall((value) => {
    assert.strictEqual(value, 42);
  }));
}

{
  const promise = createPromise();
  const error = new Error('foobar');
  promiseReject(promise, error);
  assert(inspect(promise).includes('<rejected> Error: foobar'));
  promise.catch(common.mustCall((value) => {
    assert.strictEqual(value, error);
  }));
}

{
  const promise = createPromise();
  const error = new Error('foobar');
  promiseReject(promise, error);
  assert(inspect(promise).includes('<rejected> Error: foobar'));
  promiseResolve(promise, 42);
  assert(inspect(promise).includes('<rejected> Error: foobar'));
  promise.catch(common.mustCall((value) => {
    assert.strictEqual(value, error);
  }));
}