UNPKG

koffi

Version:

Fast and simple C FFI (foreign function interface) for Node.js

44 lines (32 loc) 1.72 kB
'use strict'; const assert = require('assert'); const common = require('./common'); module.exports = common.runTest(test); async function test (binding) { assert.strictEqual(binding.promise.isPromise({}), false); const resolving = binding.promise.resolvePromise('resolved'); await assert.strictEqual(binding.promise.isPromise(resolving), true); resolving.then(common.mustCall()).catch(common.mustNotCall()); const rejecting = binding.promise.rejectPromise('error'); await assert.strictEqual(binding.promise.isPromise(rejecting), true); rejecting.then(common.mustNotCall()).catch(common.mustCall()); assert(binding.promise.promiseReturnsCorrectEnv()); const onFulfilled = (value) => value * 2; const onRejected = (reason) => reason + '!'; const thenOnFulfilled = binding.promise.thenMethodOnFulfilled(onFulfilled); assert.strictEqual(thenOnFulfilled.isPromise, true); const onFulfilledValue = await thenOnFulfilled.promise; assert.strictEqual(onFulfilledValue, 84); const thenResolve = binding.promise.thenMethodOnFulfilledOnRejectedResolve(onFulfilled, onRejected); assert.strictEqual(thenResolve.isPromise, true); const thenResolveValue = await thenResolve.promise; assert.strictEqual(thenResolveValue, 84); const thenRejected = binding.promise.thenMethodOnFulfilledOnRejectedReject(onFulfilled, onRejected); assert.strictEqual(thenRejected.isPromise, true); const rejectedValue = await thenRejected.promise; assert.strictEqual(rejectedValue, 'Rejected!'); const catchMethod = binding.promise.catchMethod(onRejected); assert.strictEqual(catchMethod.isPromise, true); const catchValue = await catchMethod.promise; assert.strictEqual(catchValue, 'Rejected!'); }