'use strict' const { test } = require('tap') const { createPromise } = require('../../lib/create-promise') test('createPromise() returns an object', (t) => { t.plan(3) t.type(createPromise(), 'object') t.equal(Array.isArray(createPromise()), false) t.notOk(Array.isArray(createPromise() !== null)) }) test('createPromise() returns an attribute with attribute resolve', (t) => { t.plan(1) t.ok('resolve' in createPromise()) }) test('createPromise() returns an attribute with attribute reject', (t) => { t.plan(1) t.ok('reject' in createPromise()) }) test('createPromise() returns an attribute with attribute createPromise', (t) => { t.plan(1) t.ok('promise' in createPromise()) }) test('when resolve is called, createPromise attribute is resolved', (t) => { t.plan(1) const p = createPromise() p.promise .then(() => { t.pass() }) .catch(() => { t.fail() }) p.resolve() }) test('when reject is called, createPromise attribute is rejected', (t) => { t.plan(1) const p = createPromise() p.promise .then(() => { t.fail() }) .catch(() => { t.pass() }) p.reject() })