Skip to content

Commit 5a0a42c

Browse files
author
Robin Pokorny
committed
Ignore order on unordered Immutable.js structures
1 parent 3942361 commit 5a0a42c

4 files changed

Lines changed: 373 additions & 3 deletions

File tree

packages/expect/src/__tests__/__snapshots__/matchers.test.js.snap

Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2247,6 +2247,294 @@ Difference:
22472247
Comparing two different types of values. Expected <green>array</> but received <red>number</>."
22482248
`;
22492249

2250+
exports[`.toEqual() {pass: false} expect(Immutable.List [1, 2]).not.toEqual(Immutable.List [1, 2]) 1`] = `
2251+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2252+
2253+
Expected value to not equal:
2254+
<green>Immutable.List [1, 2]</>
2255+
Received:
2256+
<red>Immutable.List [1, 2]</>"
2257+
`;
2258+
2259+
exports[`.toEqual() {pass: false} expect(Immutable.List [1, 2]).toEqual(Immutable.List [2, 1]) 1`] = `
2260+
"<dim>expect(</><red>received</><dim>).toEqual(</><green>expected</><dim>)</>
2261+
2262+
Expected value to equal:
2263+
<green>Immutable.List [2, 1]</>
2264+
Received:
2265+
<red>Immutable.List [1, 2]</>
2266+
2267+
Difference:
2268+
2269+
<green>- Expected</>
2270+
<red>+ Received</>
2271+
2272+
<dim> Immutable.List [</>
2273+
<red>+ 1,</>
2274+
<dim> 2,</>
2275+
<green>- 1,</>
2276+
<dim> ]</>"
2277+
`;
2278+
2279+
exports[`.toEqual() {pass: false} expect(Immutable.List [1]).not.toEqual(Immutable.List [1]) 1`] = `
2280+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2281+
2282+
Expected value to not equal:
2283+
<green>Immutable.List [1]</>
2284+
Received:
2285+
<red>Immutable.List [1]</>"
2286+
`;
2287+
2288+
exports[`.toEqual() {pass: false} expect(Immutable.List [1]).toEqual(Immutable.List [2]) 1`] = `
2289+
"<dim>expect(</><red>received</><dim>).toEqual(</><green>expected</><dim>)</>
2290+
2291+
Expected value to equal:
2292+
<green>Immutable.List [2]</>
2293+
Received:
2294+
<red>Immutable.List [1]</>
2295+
2296+
Difference:
2297+
2298+
<green>- Expected</>
2299+
<red>+ Received</>
2300+
2301+
<dim> Immutable.List [</>
2302+
<green>- 2,</>
2303+
<red>+ 1,</>
2304+
<dim> ]</>"
2305+
`;
2306+
2307+
exports[`.toEqual() {pass: false} expect(Immutable.Map {"1": Immutable.Map {"2": {"a": 99}}}).not.toEqual(Immutable.Map {"1": Immutable.Map {"2": {"a": 99}}}) 1`] = `
2308+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2309+
2310+
Expected value to not equal:
2311+
<green>Immutable.Map {\\"1\\": Immutable.Map {\\"2\\": {\\"a\\": 99}}}</>
2312+
Received:
2313+
<red>Immutable.Map {\\"1\\": Immutable.Map {\\"2\\": {\\"a\\": 99}}}</>"
2314+
`;
2315+
2316+
exports[`.toEqual() {pass: false} expect(Immutable.Map {"1": Immutable.Map {"2": {"a": 99}}}).toEqual(Immutable.Map {"1": Immutable.Map {"2": {"a": 11}}}) 1`] = `
2317+
"<dim>expect(</><red>received</><dim>).toEqual(</><green>expected</><dim>)</>
2318+
2319+
Expected value to equal:
2320+
<green>Immutable.Map {\\"1\\": Immutable.Map {\\"2\\": {\\"a\\": 11}}}</>
2321+
Received:
2322+
<red>Immutable.Map {\\"1\\": Immutable.Map {\\"2\\": {\\"a\\": 99}}}</>
2323+
2324+
Difference:
2325+
2326+
<green>- Expected</>
2327+
<red>+ Received</>
2328+
2329+
<dim> Immutable.Map {</>
2330+
<dim> \\"1\\": Immutable.Map {</>
2331+
<dim> \\"2\\": Object {</>
2332+
<green>- \\"a\\": 11,</>
2333+
<red>+ \\"a\\": 99,</>
2334+
<dim> },</>
2335+
<dim> },</>
2336+
<dim> }</>"
2337+
`;
2338+
2339+
exports[`.toEqual() {pass: false} expect(Immutable.Map {"a": 0}).toEqual(Immutable.Map {"b": 0}) 1`] = `
2340+
"<dim>expect(</><red>received</><dim>).toEqual(</><green>expected</><dim>)</>
2341+
2342+
Expected value to equal:
2343+
<green>Immutable.Map {\\"b\\": 0}</>
2344+
Received:
2345+
<red>Immutable.Map {\\"a\\": 0}</>
2346+
2347+
Difference:
2348+
2349+
<green>- Expected</>
2350+
<red>+ Received</>
2351+
2352+
<dim> Immutable.Map {</>
2353+
<green>- \\"b\\": 0,</>
2354+
<red>+ \\"a\\": 0,</>
2355+
<dim> }</>"
2356+
`;
2357+
2358+
exports[`.toEqual() {pass: false} expect(Immutable.Map {"v": 1}).toEqual(Immutable.Map {"v": 2}) 1`] = `
2359+
"<dim>expect(</><red>received</><dim>).toEqual(</><green>expected</><dim>)</>
2360+
2361+
Expected value to equal:
2362+
<green>Immutable.Map {\\"v\\": 2}</>
2363+
Received:
2364+
<red>Immutable.Map {\\"v\\": 1}</>
2365+
2366+
Difference:
2367+
2368+
<green>- Expected</>
2369+
<red>+ Received</>
2370+
2371+
<dim> Immutable.Map {</>
2372+
<green>- \\"v\\": 2,</>
2373+
<red>+ \\"v\\": 1,</>
2374+
<dim> }</>"
2375+
`;
2376+
2377+
exports[`.toEqual() {pass: false} expect(Immutable.Map {}).not.toEqual(Immutable.Map {}) 1`] = `
2378+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2379+
2380+
Expected value to not equal:
2381+
<green>Immutable.Map {}</>
2382+
Received:
2383+
<red>Immutable.Map {}</>"
2384+
`;
2385+
2386+
exports[`.toEqual() {pass: false} expect(Immutable.Map {1: "one", 2: "two"}).not.toEqual(Immutable.Map {1: "one", 2: "two"}) 1`] = `
2387+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2388+
2389+
Expected value to not equal:
2390+
<green>Immutable.Map {1: \\"one\\", 2: \\"two\\"}</>
2391+
Received:
2392+
<red>Immutable.Map {1: \\"one\\", 2: \\"two\\"}</>"
2393+
`;
2394+
2395+
exports[`.toEqual() {pass: false} expect(Immutable.Map {1: "one", 2: "two"}).not.toEqual(Immutable.Map {2: "two", 1: "one"}) 1`] = `
2396+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2397+
2398+
Expected value to not equal:
2399+
<green>Immutable.Map {2: \\"two\\", 1: \\"one\\"}</>
2400+
Received:
2401+
<red>Immutable.Map {1: \\"one\\", 2: \\"two\\"}</>"
2402+
`;
2403+
2404+
exports[`.toEqual() {pass: false} expect(Immutable.OrderedMap {1: "one", 2: "two"}).not.toEqual(Immutable.OrderedMap {1: "one", 2: "two"}) 1`] = `
2405+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2406+
2407+
Expected value to not equal:
2408+
<green>Immutable.OrderedMap {1: \\"one\\", 2: \\"two\\"}</>
2409+
Received:
2410+
<red>Immutable.OrderedMap {1: \\"one\\", 2: \\"two\\"}</>"
2411+
`;
2412+
2413+
exports[`.toEqual() {pass: false} expect(Immutable.OrderedMap {1: "one", 2: "two"}).toEqual(Immutable.OrderedMap {2: "two", 1: "one"}) 1`] = `
2414+
"<dim>expect(</><red>received</><dim>).toEqual(</><green>expected</><dim>)</>
2415+
2416+
Expected value to equal:
2417+
<green>Immutable.OrderedMap {2: \\"two\\", 1: \\"one\\"}</>
2418+
Received:
2419+
<red>Immutable.OrderedMap {1: \\"one\\", 2: \\"two\\"}</>
2420+
2421+
Difference:
2422+
2423+
<green>- Expected</>
2424+
<red>+ Received</>
2425+
2426+
<dim> Immutable.OrderedMap {</>
2427+
<red>+ 1: \\"one\\",</>
2428+
<dim> 2: \\"two\\",</>
2429+
<green>- 1: \\"one\\",</>
2430+
<dim> }</>"
2431+
`;
2432+
2433+
exports[`.toEqual() {pass: false} expect(Immutable.OrderedSet []).not.toEqual(Immutable.OrderedSet []) 1`] = `
2434+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2435+
2436+
Expected value to not equal:
2437+
<green>Immutable.OrderedSet []</>
2438+
Received:
2439+
<red>Immutable.OrderedSet []</>"
2440+
`;
2441+
2442+
exports[`.toEqual() {pass: false} expect(Immutable.OrderedSet [1, 2]).not.toEqual(Immutable.OrderedSet [1, 2]) 1`] = `
2443+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2444+
2445+
Expected value to not equal:
2446+
<green>Immutable.OrderedSet [1, 2]</>
2447+
Received:
2448+
<red>Immutable.OrderedSet [1, 2]</>"
2449+
`;
2450+
2451+
exports[`.toEqual() {pass: false} expect(Immutable.OrderedSet [1, 2]).toEqual(Immutable.OrderedSet [2, 1]) 1`] = `
2452+
"<dim>expect(</><red>received</><dim>).toEqual(</><green>expected</><dim>)</>
2453+
2454+
Expected value to equal:
2455+
<green>Immutable.OrderedSet [2, 1]</>
2456+
Received:
2457+
<red>Immutable.OrderedSet [1, 2]</>
2458+
2459+
Difference:
2460+
2461+
<green>- Expected</>
2462+
<red>+ Received</>
2463+
2464+
<dim> Immutable.OrderedSet [</>
2465+
<red>+ 1,</>
2466+
<dim> 2,</>
2467+
<green>- 1,</>
2468+
<dim> ]</>"
2469+
`;
2470+
2471+
exports[`.toEqual() {pass: false} expect(Immutable.Set []).not.toEqual(Immutable.Set []) 1`] = `
2472+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2473+
2474+
Expected value to not equal:
2475+
<green>Immutable.Set []</>
2476+
Received:
2477+
<red>Immutable.Set []</>"
2478+
`;
2479+
2480+
exports[`.toEqual() {pass: false} expect(Immutable.Set [1, 2]).not.toEqual(Immutable.Set [1, 2]) 1`] = `
2481+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2482+
2483+
Expected value to not equal:
2484+
<green>Immutable.Set [1, 2]</>
2485+
Received:
2486+
<red>Immutable.Set [1, 2]</>"
2487+
`;
2488+
2489+
exports[`.toEqual() {pass: false} expect(Immutable.Set [1, 2]).not.toEqual(Immutable.Set [2, 1]) 1`] = `
2490+
"<dim>expect(</><red>received</><dim>).not.toEqual(</><green>expected</><dim>)</>
2491+
2492+
Expected value to not equal:
2493+
<green>Immutable.Set [2, 1]</>
2494+
Received:
2495+
<red>Immutable.Set [1, 2]</>"
2496+
`;
2497+
2498+
exports[`.toEqual() {pass: false} expect(Immutable.Set [1, 2]).toEqual(Immutable.Set []) 1`] = `
2499+
"<dim>expect(</><red>received</><dim>).toEqual(</><green>expected</><dim>)</>
2500+
2501+
Expected value to equal:
2502+
<green>Immutable.Set []</>
2503+
Received:
2504+
<red>Immutable.Set [1, 2]</>
2505+
2506+
Difference:
2507+
2508+
<green>- Expected</>
2509+
<red>+ Received</>
2510+
2511+
<green>- Immutable.Set []</>
2512+
<red>+ Immutable.Set [</>
2513+
<red>+ 1,</>
2514+
<red>+ 2,</>
2515+
<red>+ ]</>"
2516+
`;
2517+
2518+
exports[`.toEqual() {pass: false} expect(Immutable.Set [1, 2]).toEqual(Immutable.Set [1, 2, 3]) 1`] = `
2519+
"<dim>expect(</><red>received</><dim>).toEqual(</><green>expected</><dim>)</>
2520+
2521+
Expected value to equal:
2522+
<green>Immutable.Set [1, 2, 3]</>
2523+
Received:
2524+
<red>Immutable.Set [1, 2]</>
2525+
2526+
Difference:
2527+
2528+
<green>- Expected</>
2529+
<red>+ Received</>
2530+
2531+
<dim> Immutable.Set [</>
2532+
<dim> 1,</>
2533+
<dim> 2,</>
2534+
<green>- 3,</>
2535+
<dim> ]</>"
2536+
`;
2537+
22502538
exports[`.toEqual() {pass: false} expect(Map {"a" => 0}).toEqual(Map {"b" => 0}) 1`] = `
22512539
"<dim>expect(</><red>received</><dim>).toEqual(</><green>expected</><dim>)</>
22522540

packages/expect/src/__tests__/matchers.test.js

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
const {stringify} = require('jest-matcher-utils');
1010
const jestExpect = require('../');
11+
const Immutable = require('immutable');
1112

1213
it('should throw if passed two arguments', () => {
1314
expect(() => jestExpect('foo', 'bar')).toThrow(
@@ -200,12 +201,31 @@ describe('.toEqual()', () => {
200201
[null, undefined],
201202
[[1], [2]],
202203
[[1, 2], [2, 1]],
204+
[Immutable.List([1]), Immutable.List([2])],
205+
[Immutable.List([1, 2]), Immutable.List([2, 1])],
203206
[new Map(), new Set()],
204207
[new Set([1, 2]), new Set()],
205208
[new Set([1, 2]), new Set([1, 2, 3])],
209+
[Immutable.Set([1, 2]), Immutable.Set()],
210+
[Immutable.Set([1, 2]), Immutable.Set([1, 2, 3])],
211+
[Immutable.OrderedSet([1, 2]), Immutable.OrderedSet([2, 1])],
206212
[new Map([[1, 'one'], [2, 'two']]), new Map([[1, 'one']])],
207213
[new Map([['a', 0]]), new Map([['b', 0]])],
208214
[new Map([['v', 1]]), new Map([['v', 2]])],
215+
[Immutable.Map({a: 0}), Immutable.Map({b: 0})],
216+
[Immutable.Map({v: 1}), Immutable.Map({v: 2})],
217+
[
218+
Immutable.OrderedMap()
219+
.set(1, 'one')
220+
.set(2, 'two'),
221+
Immutable.OrderedMap()
222+
.set(2, 'two')
223+
.set(1, 'one'),
224+
],
225+
[
226+
Immutable.Map({1: Immutable.Map({2: {a: 99}})}),
227+
Immutable.Map({1: Immutable.Map({2: {a: 11}})}),
228+
],
209229
[{a: 1, b: 2}, jestExpect.objectContaining({a: 2})],
210230
[false, jestExpect.objectContaining({a: 2})],
211231
[[1, 3], jestExpect.arrayContaining([1, 2])],
@@ -236,14 +256,50 @@ describe('.toEqual()', () => {
236256
['abc', 'abc'],
237257
[[1], [1]],
238258
[[1, 2], [1, 2]],
259+
[Immutable.List([1]), Immutable.List([1])],
260+
[Immutable.List([1, 2]), Immutable.List([1, 2])],
239261
[{}, {}],
240262
[{a: 99}, {a: 99}],
241263
[new Set(), new Set()],
242264
[new Set([1, 2]), new Set([1, 2])],
243265
[new Set([1, 2]), new Set([2, 1])],
266+
[Immutable.Set(), Immutable.Set()],
267+
[Immutable.Set([1, 2]), Immutable.Set([1, 2])],
268+
[Immutable.Set([1, 2]), Immutable.Set([2, 1])],
269+
[Immutable.OrderedSet(), Immutable.OrderedSet()],
270+
[Immutable.OrderedSet([1, 2]), Immutable.OrderedSet([1, 2])],
244271
[new Map(), new Map()],
245272
[new Map([[1, 'one'], [2, 'two']]), new Map([[1, 'one'], [2, 'two']])],
246273
[new Map([[1, 'one'], [2, 'two']]), new Map([[2, 'two'], [1, 'one']])],
274+
[Immutable.Map(), Immutable.Map()],
275+
[
276+
Immutable.Map()
277+
.set(1, 'one')
278+
.set(2, 'two'),
279+
Immutable.Map()
280+
.set(1, 'one')
281+
.set(2, 'two'),
282+
],
283+
[
284+
Immutable.Map()
285+
.set(1, 'one')
286+
.set(2, 'two'),
287+
Immutable.Map()
288+
.set(2, 'two')
289+
.set(1, 'one'),
290+
],
291+
[
292+
Immutable.OrderedMap()
293+
.set(1, 'one')
294+
.set(2, 'two'),
295+
Immutable.OrderedMap()
296+
.set(1, 'one')
297+
.set(2, 'two'),
298+
],
299+
[
300+
Immutable.Map({1: Immutable.Map({2: {a: 99}})}),
301+
Immutable.Map({1: Immutable.Map({2: {a: 99}})}),
302+
],
247303
[{a: 1, b: 2}, jestExpect.objectContaining({a: 1})],
248304
[[1, 2, 3], jestExpect.arrayContaining([2, 3])],
249305
['abcd', jestExpect.stringContaining('bc')],

0 commit comments

Comments
 (0)