From 9b845556eaa5e8deef1aea6c7f2ba28d508af813 Mon Sep 17 00:00:00 2001 From: Rebecca Meritz Date: Tue, 9 Jun 2020 15:32:05 -0700 Subject: [PATCH] Extend callbackToPromise tests - Add 100% coverage - Test promise reject - Test callbackArgIndex argument usage --- lib/callback_to_promise.js | 1 - test/callback_to_promise.test.js | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/callback_to_promise.js b/lib/callback_to_promise.js index 755102c4..843667f1 100644 --- a/lib/callback_to_promise.js +++ b/lib/callback_to_promise.js @@ -1,4 +1,3 @@ -// istanbul ignore file 'use strict'; var Promise = require('./promise'); diff --git a/test/callback_to_promise.test.js b/test/callback_to_promise.test.js index c6aed821..b98c6686 100644 --- a/test/callback_to_promise.test.js +++ b/test/callback_to_promise.test.js @@ -7,6 +7,10 @@ describe('callbackToPromise', function() { callback(null, this + value); } + function rejectValue(value, callback) { + callback(new Error('I reject this value')); + } + function sum() { var callback = arguments[arguments.length - 1]; var result = 0; @@ -16,11 +20,16 @@ describe('callbackToPromise', function() { callback(null, result); } - it('lets a function return a promise', function() { + it('lets a function return a promise that can resolve', function() { var wrapped = callbackToPromise(returnThisPlusValue, 1); expect(wrapped(2)).resolves.toBe(3); }); + it('lets a function return a promise that can reject', function() { + var wrapped = callbackToPromise(rejectValue, 1); + expect(wrapped(2)).rejects.toThrow(/reject this value/); + }); + it('maintains the ability to call a function with a callback', function(done) { var wrapped = callbackToPromise(returnThisPlusValue, 1); wrapped(2, function(err, result) { @@ -47,4 +56,9 @@ describe('callbackToPromise', function() { }); }); }); + + it('can allow the user to explicately identify the index of the callback', function() { + var wrapped = callbackToPromise(returnThisPlusValue, 1, 1); + expect(wrapped(2)).resolves.toBe(3); + }); });