diff --git a/lib/deep-equal.js b/lib/deep-equal.js index ce0c8c8..88156e0 100644 --- a/lib/deep-equal.js +++ b/lib/deep-equal.js @@ -200,10 +200,6 @@ function deepEqualCyclic(actual, expectation, match) { !isArrayType(expectation) && !isArguments(expectation); if (isActualNonArrayIterable || isExpectationNonArrayIterable) { - if (!isActualNonArrayIterable || !isExpectationNonArrayIterable) { - return false; - } - var actualArray = Array.from(actualObj); var expectationArray = Array.from(expectation); if (actualArray.length !== expectationArray.length) { diff --git a/lib/is-iterable.test.js b/lib/is-iterable.test.js new file mode 100644 index 0000000..009f215 --- /dev/null +++ b/lib/is-iterable.test.js @@ -0,0 +1,30 @@ +"use strict"; + +var assert = require("@sinonjs/referee").assert; +var isIterable = require("./is-iterable"); + +describe("isIterable", function () { + it("returns false if not object", function () { + assert.isFalse(isIterable(undefined)); + }); + + it("returns false if object does not have iterator function", function () { + assert.isFalse(isIterable({})); + }); + + it("returns true if Set", function () { + assert.isTrue(isIterable(new Set())); + }); + + it("returns true if Set iterator", function () { + assert.isTrue(isIterable(new Set().values())); + }); + + it("returns true if Map", function () { + assert.isTrue(isIterable(new Map())); + }); + + it("returns true if Map iterator", function () { + assert.isTrue(isIterable(new Map().values())); + }); +});