diff --git a/lib/sinon/promise.js b/lib/sinon/promise.js index e9c446c96..eaf7a2010 100644 --- a/lib/sinon/promise.js +++ b/lib/sinon/promise.js @@ -56,12 +56,12 @@ function promise(executor) { * @param {Function} callback */ function finalize(status, value, callback) { - if (sinonPromise.status === STATUS_PENDING) { - sinonPromise.status = status; - callback(value); - return; + if (sinonPromise.status !== STATUS_PENDING) { + throw new Error(`Promise already ${sinonPromise.status}`); } - throw new Error(`Promise already ${sinonPromise.status}`); + + sinonPromise.status = status; + callback(value); } sinonPromise.resolve = function (value) {