Skip to content

Commit 0c37619

Browse files
authoredJun 30, 2022
fix(expect-utils): Fix equalityof ImmutableJS OrderedSets (#12977)
1 parent 93e1150 commit 0c37619

File tree

4 files changed

+24
-2
lines changed

4 files changed

+24
-2
lines changed
 

‎CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
### Fixes
66

7+
- `[@jest/expect-utils]` Fix deep equality of ImmutableJS OrderedSets ([#12977](https://github.com/facebook/jest/pull/12977))
8+
79
### Chore & Maintenance
810

911
### Performance

‎packages/expect-utils/src/__tests__/utils.test.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
*/
88

9-
import {List, OrderedMap} from 'immutable';
9+
import {List, OrderedMap, OrderedSet} from 'immutable';
1010
import {stringify} from 'jest-matcher-utils';
1111
import {
1212
arrayBufferEquality,
@@ -531,6 +531,12 @@ describe('iterableEquality', () => {
531531
const b = OrderedMap().merge({saving: true});
532532
expect(iterableEquality(a, b)).toBe(true);
533533
});
534+
535+
test('returns true when given Immutable OrderedSets without an OwnerID', () => {
536+
const a = OrderedSet().add('newValue');
537+
const b = List(['newValue']).toOrderedSet();
538+
expect(iterableEquality(a, b)).toBe(true);
539+
});
534540
});
535541

536542
describe('arrayBufferEquality', () => {

‎packages/expect-utils/src/jasmineUtils.ts

+9
Original file line numberDiff line numberDiff line change
@@ -274,3 +274,12 @@ export function isImmutableOrderedKeyed(maybeKeyed: any) {
274274
maybeKeyed[IS_ORDERED_SENTINEL]
275275
);
276276
}
277+
278+
279+
export function isImmutableOrderedSet(maybeSet: any) {
280+
return !!(
281+
maybeSet &&
282+
maybeSet[IS_SET_SENTINEL] &&
283+
maybeSet[IS_ORDERED_SENTINEL]
284+
);
285+
}

‎packages/expect-utils/src/utils.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
isA,
1313
isImmutableList,
1414
isImmutableOrderedKeyed,
15+
isImmutableOrderedSet,
1516
isImmutableUnorderedKeyed,
1617
isImmutableUnorderedSet,
1718
} from './jasmineUtils';
@@ -256,7 +257,11 @@ export const iterableEquality = (
256257
return false;
257258
}
258259

259-
if (!isImmutableList(a) && !isImmutableOrderedKeyed(a)) {
260+
if (
261+
!isImmutableList(a) &&
262+
!isImmutableOrderedKeyed(a) &&
263+
!isImmutableOrderedSet(a)
264+
) {
260265
const aEntries = Object.entries(a);
261266
const bEntries = Object.entries(b);
262267
if (!equals(aEntries, bEntries)) {

0 commit comments

Comments
 (0)
Please sign in to comment.