Asserts that the target has the same members as the expected value, regardless of order. Uses deep equality for comparison. Both the target and expected values must conform to ArrayLikeOrSizedIterable but can be different concrete types.
The assert scope.
The expected collection to compare against (must be an ArrayLikeOrSizedIterable).
OptionalevalMsg: MsgSource
The message to display if the assertion fails.
import { assert } from "@nevware21/tripwire";
assert([{a: 1}, {b: 2}]).has.deep.sameMembers([{b: 2}, {a: 1}]); // Passes - deep equality
assert([[1, 2], [3, 4]]).has.deep.sameMembers([[3, 4], [1, 2]]); // Passes - nested arrays
assert([{a: 1}]).has.deep.sameMembers([{a: 2}]); // Fails - different values
assert(new Set([{a: 1}])).has.deep.sameMembers([{a: 1}]); // Passes - different types
Export assertion functions