Skip to content

Commit 0be8209

Browse files
committed
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.
1 parent 089195c commit 0be8209

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

packages/form-core/tests/utils.spec.ts

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -692,6 +692,67 @@ describe('evaluate', () => {
692692
const dateObjectFalse = evaluate({ date: date1 }, { date: date3 })
693693
expect(dateObjectFalse).toEqual(false)
694694
})
695+
696+
it('should test equality between Map objects', () => {
697+
const map1 = new Map([
698+
['a', 1],
699+
['b', 2],
700+
])
701+
const map2 = new Map([
702+
['a', 1],
703+
['b', 2],
704+
])
705+
expect(evaluate(map1, map2)).toEqual(true)
706+
707+
const emptyMap1 = new Map()
708+
const emptyMap2 = new Map()
709+
expect(evaluate(emptyMap1, emptyMap2)).toEqual(true)
710+
711+
const mapSmall = new Map([['a', 1]])
712+
const mapLarge = new Map([
713+
['a', 1],
714+
['b', 2],
715+
])
716+
expect(evaluate(mapSmall, mapLarge)).toEqual(false)
717+
718+
const mapA = new Map([
719+
['a', 1],
720+
['b', 2],
721+
])
722+
const mapC = new Map([
723+
['a', 1],
724+
['c', 2],
725+
])
726+
expect(evaluate(mapA, mapC)).toEqual(false)
727+
728+
const mapVal1 = new Map([
729+
['a', 1],
730+
['b', 2],
731+
])
732+
const mapVal2 = new Map([
733+
['a', 1],
734+
['b', 3],
735+
])
736+
expect(evaluate(mapVal1, mapVal2)).toEqual(false)
737+
})
738+
739+
it('should test equality between Set objects', () => {
740+
const set1 = new Set([1, 2, 3])
741+
const set2 = new Set([1, 2, 3])
742+
expect(evaluate(set1, set2)).toEqual(true)
743+
744+
const emptySet1 = new Set()
745+
const emptySet2 = new Set()
746+
expect(evaluate(emptySet1, emptySet2)).toEqual(true)
747+
748+
const setSmall = new Set([1, 2])
749+
const setLarge = new Set([1, 2, 3])
750+
expect(evaluate(setSmall, setLarge)).toEqual(false)
751+
752+
const setA = new Set([1, 2, 3])
753+
const setB = new Set([1, 2, 4])
754+
expect(evaluate(setA, setB)).toEqual(false)
755+
})
695756
})
696757

697758
describe('concatenatePaths', () => {

0 commit comments

Comments
 (0)