From 0be8209dbec968ad846b4a607be542fa3ba22f95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EA=B7=9C=EC=A7=84?= Date: Thu, 29 Jan 2026 20:33:24 +0900 Subject: [PATCH] test(form-core): add coverage for Map and Set comparison in evaluate Add tests for the evaluate utility function to cover Map and Set comparison logic, including edge cases for equality, empty collections, different sizes, and different values. --- packages/form-core/tests/utils.spec.ts | 61 ++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/packages/form-core/tests/utils.spec.ts b/packages/form-core/tests/utils.spec.ts index 229e7cdd9..a545fd719 100644 --- a/packages/form-core/tests/utils.spec.ts +++ b/packages/form-core/tests/utils.spec.ts @@ -692,6 +692,67 @@ describe('evaluate', () => { const dateObjectFalse = evaluate({ date: date1 }, { date: date3 }) expect(dateObjectFalse).toEqual(false) }) + + it('should test equality between Map objects', () => { + const map1 = new Map([ + ['a', 1], + ['b', 2], + ]) + const map2 = new Map([ + ['a', 1], + ['b', 2], + ]) + expect(evaluate(map1, map2)).toEqual(true) + + const emptyMap1 = new Map() + const emptyMap2 = new Map() + expect(evaluate(emptyMap1, emptyMap2)).toEqual(true) + + const mapSmall = new Map([['a', 1]]) + const mapLarge = new Map([ + ['a', 1], + ['b', 2], + ]) + expect(evaluate(mapSmall, mapLarge)).toEqual(false) + + const mapA = new Map([ + ['a', 1], + ['b', 2], + ]) + const mapC = new Map([ + ['a', 1], + ['c', 2], + ]) + expect(evaluate(mapA, mapC)).toEqual(false) + + const mapVal1 = new Map([ + ['a', 1], + ['b', 2], + ]) + const mapVal2 = new Map([ + ['a', 1], + ['b', 3], + ]) + expect(evaluate(mapVal1, mapVal2)).toEqual(false) + }) + + it('should test equality between Set objects', () => { + const set1 = new Set([1, 2, 3]) + const set2 = new Set([1, 2, 3]) + expect(evaluate(set1, set2)).toEqual(true) + + const emptySet1 = new Set() + const emptySet2 = new Set() + expect(evaluate(emptySet1, emptySet2)).toEqual(true) + + const setSmall = new Set([1, 2]) + const setLarge = new Set([1, 2, 3]) + expect(evaluate(setSmall, setLarge)).toEqual(false) + + const setA = new Set([1, 2, 3]) + const setB = new Set([1, 2, 4]) + expect(evaluate(setA, setB)).toEqual(false) + }) }) describe('concatenatePaths', () => {