From a71a7f96d53fffca6da835733b575931b47255a3 Mon Sep 17 00:00:00 2001 From: Matt Phillips Date: Tue, 2 Apr 2019 23:43:30 +0100 Subject: [PATCH 1/2] Add negative equality tests --- packages/expect/src/__tests__/utils.test.js | 30 +++++++++++++++++++++ packages/expect/src/utils.ts | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/packages/expect/src/__tests__/utils.test.js b/packages/expect/src/__tests__/utils.test.js index 7ff609a8ab87..0850053b120a 100644 --- a/packages/expect/src/__tests__/utils.test.js +++ b/packages/expect/src/__tests__/utils.test.js @@ -241,6 +241,36 @@ describe('iterableEquality', () => { ).toBe(false); }); + test('returns false when given inequal set within a set', () => { + expect( + iterableEquality(new Set([new Set([2])]), new Set([new Set([1, 2])])), + ).toBe(false); + expect( + iterableEquality(new Set([new Set([2])]), new Set([new Set([1, 2])])), + ).toBe(false); + }); + + test('returns false when given inequal map within a set', () => { + expect( + iterableEquality( + new Set([new Map([['a', 2]])]), + new Set([new Map([['a', 3]])]), + ), + ).toBe(false); + expect( + iterableEquality(new Set([new Set([2])]), new Set([new Set([1, 2])])), + ).toBe(false); + }); + + test('returns false when given inequal set within a map', () => { + expect( + iterableEquality( + new Map([['one', new Set([2])]]), + new Map([['one', new Set([1, 2])]]), + ), + ).toBe(false); + }); + test('returns true when given circular Set shape', () => { const a1 = new Set(); const a2 = new Set(); diff --git a/packages/expect/src/utils.ts b/packages/expect/src/utils.ts index 2f3f97ffe2ea..2c0f8837a5a3 100644 --- a/packages/expect/src/utils.ts +++ b/packages/expect/src/utils.ts @@ -172,7 +172,7 @@ export const iterableEquality = ( bStack.push(b); const iterableEqualityWithStack = (a: any, b: any) => - iterableEquality(a, b, aStack, bStack); + iterableEquality(a, b, [...aStack], [...bStack]); if (a.size !== undefined) { if (a.size !== b.size) { From 019eeb889b7cd335e208fd62502db60c0b7fd9a2 Mon Sep 17 00:00:00 2001 From: Matt Phillips Date: Tue, 2 Apr 2019 23:51:31 +0100 Subject: [PATCH 2/2] Add changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb99b1239a92..bd1237f2bde2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Fixes +- `[expect]` Add negative equality tests for iterables ([#8260](https://github.com/facebook/jest/pull/8260)) - `[jest-haste-map]` Resolve fs watcher EMFILE error ([#8258](https://github.com/facebook/jest/pull/8258)) ### Chore & Maintenance