diff --git a/.eslintrc.yaml b/.eslintrc.yaml index 5062dc5..6aa1f6b 100644 --- a/.eslintrc.yaml +++ b/.eslintrc.yaml @@ -12,6 +12,7 @@ globals: Set: false Symbol: false BigInt: false + Promise: false Int8Array: false Uint8Array: false Uint8ClampedArray: false diff --git a/lib/deep-equal.js b/lib/deep-equal.js index 2523426..9a9b5fd 100644 --- a/lib/deep-equal.js +++ b/lib/deep-equal.js @@ -117,6 +117,10 @@ function deepEqualCyclic(actual, expectation, match) { } } + if (actualObj instanceof Promise && expectationObj instanceof Promise) { + return actualObj === expectationObj; + } + if (actualObj instanceof Error && expectationObj instanceof Error) { return actualObj === expectationObj; } diff --git a/lib/deep-equal.test.js b/lib/deep-equal.test.js index 827897b..edf62c4 100644 --- a/lib/deep-equal.test.js +++ b/lib/deep-equal.test.js @@ -903,4 +903,19 @@ describe("deepEqual", function () { }); }); }); + + describe("promises", function () { + it("returns true if the same promise instance is compared", function () { + var promise = Promise.resolve(); + var checkDeep = samsam.deepEqual(promise, promise); + assert.isTrue(checkDeep); + }); + + it("returns false if a different promise instance is compared", function () { + var promise1 = Promise.resolve(); + var promise2 = Promise.resolve(); + var checkDeep = samsam.deepEqual(promise1, promise2); + assert.isFalse(checkDeep); + }); + }); });