@adobe/data-testing 0.9.96 → 0.9.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-spec.js","sourceRoot":"","sources":["../../src/conformance/run-spec.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGvE,MAAM,gBAAgB,GAAG,CAAC,CAAU,EAAyC,EAAE,CAC7E,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"run-spec.js","sourceRoot":"","sources":["../../src/conformance/run-spec.ts"],"names":[],"mappings":"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"}
|
package/dist/match/match.d.ts
CHANGED
package/dist/match/match.js
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
// Ordered vs. unordered is carried by the value's own type, not by configuration:
|
|
3
|
+
// an `Array` compares positionally (tuples like a `Vec2`, or a display-ordered
|
|
4
|
+
// list a case verifies), while a `Set` or `Map` compares order-independently (ecs
|
|
5
|
+
// entity collections materialised in nondeterministic row order). This mirrors the
|
|
6
|
+
// `State` modelling rule — `ReadonlyArray` means order matters, `ReadonlySet` /
|
|
7
|
+
// `ReadonlyMap` mean it does not.
|
|
2
8
|
// A `ref(label)` on the EXPECTED side asserts id CORRESPONDENCE without pinning
|
|
3
9
|
// the value: the first occurrence of a label binds to whatever actual value sits
|
|
4
10
|
// there; later occurrences of the same label must equal that binding, and two
|
|
5
11
|
// labels can never bind the same actual (a bijection). This checks that ecs ids
|
|
6
12
|
// line up structurally — e.g. a `selectedId` points at the entity a case means —
|
|
7
13
|
// even though the ecs assigns ids from its own space. For an id a case does not
|
|
8
|
-
// care about,
|
|
14
|
+
// care about, simply omit it (a numeric `id` the expected side does not mention is
|
|
15
|
+
// ignored — see `matchesWith`), or use `anyNumber` to assert only that one exists.
|
|
9
16
|
const REF = Symbol.for("@adobe/data-testing:ref");
|
|
10
17
|
export const ref = (label) => ({ [REF]: label });
|
|
11
18
|
const isRef = (value) => typeof value === "object" && value !== null && REF in value;
|
|
@@ -19,20 +26,38 @@ const quantize = (n, tolerance) => {
|
|
|
19
26
|
const factor = 1 / tolerance;
|
|
20
27
|
return Math.round(Math.fround(n) * factor) / factor + 0; // `+ 0` normalises `-0` to `0`
|
|
21
28
|
};
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
|
|
29
|
+
// Order-independent match over a fixed pair of element lists (a `Set`'s values, or
|
|
30
|
+
// a `Map`'s `[key, value]` entries). Finds a perfect pairing under which every
|
|
31
|
+
// element matches AND all `ref` bindings stay globally consistent — so a `ref`
|
|
32
|
+
// correspondence may cross into an unordered collection. Backtracking (rather than
|
|
33
|
+
// greedy) is required because one element's binding can invalidate another's
|
|
34
|
+
// pairing; test collections are small, so the worst case is irrelevant. `bindings`
|
|
35
|
+
// is snapshotted before each tentative pairing and restored on failure.
|
|
36
|
+
const matchesUnordered = (actual, expected, options, bindings) => {
|
|
26
37
|
if (actual.length !== expected.length)
|
|
27
38
|
return false;
|
|
28
39
|
const used = new Array(actual.length).fill(false);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
const pair = (i) => {
|
|
41
|
+
if (i === expected.length)
|
|
42
|
+
return true;
|
|
43
|
+
for (let j = 0; j < actual.length; j++) {
|
|
44
|
+
if (used[j])
|
|
45
|
+
continue;
|
|
46
|
+
const snapshot = new Map(bindings);
|
|
47
|
+
if (matchesWith(actual[j], expected[i], options, bindings)) {
|
|
48
|
+
used[j] = true;
|
|
49
|
+
if (pair(i + 1))
|
|
50
|
+
return true;
|
|
51
|
+
used[j] = false;
|
|
52
|
+
}
|
|
53
|
+
// Undo any bindings the failed attempt added before trying the next candidate.
|
|
54
|
+
bindings.clear();
|
|
55
|
+
for (const [label, value] of snapshot)
|
|
56
|
+
bindings.set(label, value);
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
};
|
|
60
|
+
return pair(0);
|
|
36
61
|
};
|
|
37
62
|
const matchesWith = (actual, expected, options, bindings) => {
|
|
38
63
|
if (isRef(expected)) {
|
|
@@ -51,32 +76,52 @@ const matchesWith = (actual, expected, options, bindings) => {
|
|
|
51
76
|
const tolerance = options.tolerance ?? 0.01;
|
|
52
77
|
return quantize(actual, tolerance) === quantize(expected, tolerance);
|
|
53
78
|
}
|
|
79
|
+
if (expected instanceof Set) {
|
|
80
|
+
if (!(actual instanceof Set))
|
|
81
|
+
return false;
|
|
82
|
+
return matchesUnordered([...actual], [...expected], options, bindings);
|
|
83
|
+
}
|
|
84
|
+
if (expected instanceof Map) {
|
|
85
|
+
if (!(actual instanceof Map))
|
|
86
|
+
return false;
|
|
87
|
+
// Compare entries as an unordered collection of `[key, value]` pairs. Keys are
|
|
88
|
+
// meaningful/deterministic by convention (identity-keyed collections are Sets),
|
|
89
|
+
// so pairing an expected entry to the actual entry with the equal key and a
|
|
90
|
+
// matching value is exactly key-based comparison, and reports missing/extra
|
|
91
|
+
// keys as a failed pairing.
|
|
92
|
+
return matchesUnordered([...actual], [...expected], options, bindings);
|
|
93
|
+
}
|
|
54
94
|
if (Array.isArray(expected)) {
|
|
55
95
|
if (!Array.isArray(actual) || actual.length !== expected.length)
|
|
56
96
|
return false;
|
|
57
97
|
return expected.every((exp, index) => matchesWith(actual[index], exp, options, bindings));
|
|
58
98
|
}
|
|
59
99
|
if (expected !== null && typeof expected === "object") {
|
|
60
|
-
if (actual === null ||
|
|
100
|
+
if (actual === null ||
|
|
101
|
+
typeof actual !== "object" ||
|
|
102
|
+
Array.isArray(actual) ||
|
|
103
|
+
actual instanceof Set ||
|
|
104
|
+
actual instanceof Map)
|
|
61
105
|
return false;
|
|
62
|
-
const
|
|
63
|
-
const
|
|
106
|
+
const eo = expected;
|
|
107
|
+
const ao = actual;
|
|
108
|
+
// A numeric `id` the case does not mention is an ecs-allocated identity a case
|
|
109
|
+
// cannot predict — ignore it so entity content compares without pinning ids. A
|
|
110
|
+
// case that DOES care pins it explicitly (`id: ref(...)` / `anyNumber`), which
|
|
111
|
+
// puts `id` on the expected side and takes it through the normal path below.
|
|
112
|
+
const ignoreId = !("id" in eo) && typeof ao.id === "number";
|
|
113
|
+
const expectedKeys = Object.keys(eo);
|
|
114
|
+
const actualKeys = ignoreId ? Object.keys(ao).filter((k) => k !== "id") : Object.keys(ao);
|
|
64
115
|
if (expectedKeys.length !== actualKeys.length)
|
|
65
116
|
return false;
|
|
66
|
-
return expectedKeys.every((key) =>
|
|
67
|
-
const exp = expected[key];
|
|
68
|
-
const act = actual[key];
|
|
69
|
-
if (options.unordered?.has(key) && Array.isArray(exp) && Array.isArray(act)) {
|
|
70
|
-
return matchesUnordered(act, exp, options);
|
|
71
|
-
}
|
|
72
|
-
return matchesWith(act, exp, options, bindings);
|
|
73
|
-
});
|
|
117
|
+
return expectedKeys.every((key) => matchesWith(ao[key], eo[key], options, bindings));
|
|
74
118
|
}
|
|
75
119
|
return Object.is(actual, expected);
|
|
76
120
|
};
|
|
77
121
|
// Tolerant structural comparison: honors asymmetric matchers and `ref`
|
|
78
|
-
// correspondence on the expected side, absorbs float noise,
|
|
79
|
-
//
|
|
80
|
-
// and framework-agnostic — `assert` wraps it for a
|
|
122
|
+
// correspondence on the expected side, absorbs float noise, compares arrays in
|
|
123
|
+
// order and Sets/Maps order-independently, and ignores an ecs-allocated numeric
|
|
124
|
+
// `id` a case does not pin. Pure and framework-agnostic — `assert` wraps it for a
|
|
125
|
+
// throwing test assertion.
|
|
81
126
|
export const matches = (actual, expected, options = {}) => matchesWith(actual, expected, options, new Map());
|
|
82
127
|
//# sourceMappingURL=match.js.map
|
package/dist/match/match.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/match/match.ts"],"names":[],"mappings":"AAAA,uDAAuD;
|
|
1
|
+
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/match/match.ts"],"names":[],"mappings":"AAAA,uDAAuD;AASvD,kFAAkF;AAClF,+EAA+E;AAC/E,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,kCAAkC;AAElC,gFAAgF;AAChF,iFAAiF;AACjF,8EAA8E;AAC9E,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAChF,mFAAmF;AACnF,mFAAmF;AACnF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,KAAa,EAA8B,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACrF,MAAM,KAAK,GAAG,CAAC,KAAc,EAAuC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC;AAE9D,4EAA4E;AAC5E,gFAAgF;AAChF,2EAA2E;AAC3E,MAAM,SAAS,GAAG,CAAC,KAAc,EAA0D,EAAE,CAC3F,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,OAAQ,KAAuC,CAAC,eAAe,KAAK,UAAU,CAAC;AAEjF,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,SAAiB,EAAU,EAAE;IACxD,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,+BAA+B;AAC1F,CAAC,CAAC;AAEF,mFAAmF;AACnF,+EAA+E;AAC/E,+EAA+E;AAC/E,mFAAmF;AACnF,6EAA6E;AAC7E,mFAAmF;AACnF,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,CACvB,MAA0B,EAC1B,QAA4B,EAC5B,OAAqB,EACrB,QAA8B,EACrB,EAAE;IACX,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,KAAK,CAAU,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,CAAC,CAAS,EAAW,EAAE;QAClC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAAE,SAAS;YACtB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACf,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC7B,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAClB,CAAC;YACD,+EAA+E;YAC/E,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,QAAQ;gBAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,MAAe,EACf,QAAiB,EACjB,OAAqB,EACrB,QAA8B,EACrB,EAAE;IACX,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QACvE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE;YAAE,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC,CAAC,YAAY;QAC/F,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC5C,OAAO,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,QAAQ,YAAY,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,MAAM,YAAY,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3C,OAAO,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,QAAQ,YAAY,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,MAAM,YAAY,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3C,+EAA+E;QAC/E,gFAAgF;QAChF,4EAA4E;QAC5E,4EAA4E;QAC5E,4BAA4B;QAC5B,OAAO,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9E,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtD,IACE,MAAM,KAAK,IAAI;YACf,OAAO,MAAM,KAAK,QAAQ;YAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACrB,MAAM,YAAY,GAAG;YACrB,MAAM,YAAY,GAAG;YAErB,OAAO,KAAK,CAAC;QACf,MAAM,EAAE,GAAG,QAAmC,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAiC,CAAC;QAC7C,+EAA+E;QAC/E,+EAA+E;QAC/E,+EAA+E;QAC/E,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC;QAC5D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1F,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,uEAAuE;AACvE,+EAA+E;AAC/E,gFAAgF;AAChF,kFAAkF;AAClF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAe,EAAE,QAAiB,EAAE,UAAwB,EAAE,EAAW,EAAE,CACjG,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC"}
|
package/dist/match/match.test.js
CHANGED
|
@@ -19,12 +19,30 @@ describe("Match.matches", () => {
|
|
|
19
19
|
expect(matches({ id: "no" }, { id: anyNumber })).toBe(false);
|
|
20
20
|
expect(matches(7, expect.any(Number))).toBe(true);
|
|
21
21
|
});
|
|
22
|
-
it("
|
|
22
|
+
it("ignores a numeric id a case does not mention, honors one it pins", () => {
|
|
23
|
+
// Omitted → the ecs-allocated id is not compared.
|
|
24
|
+
expect(matches({ id: 7, name: "a" }, { name: "a" })).toBe(true);
|
|
25
|
+
expect(matches({ id: 7, name: "a" }, { name: "b" })).toBe(false);
|
|
26
|
+
// Present → compared like any field (so a case can still pin it).
|
|
27
|
+
expect(matches({ id: 7 }, { id: 7 })).toBe(true);
|
|
28
|
+
expect(matches({ id: 7 }, { id: 8 })).toBe(false);
|
|
29
|
+
// Only the `id` key is special; another extra key still fails.
|
|
30
|
+
expect(matches({ extra: 1, name: "a" }, { name: "a" })).toBe(false);
|
|
31
|
+
// Only a NUMERIC id is auto-ignored.
|
|
32
|
+
expect(matches({ id: "x", name: "a" }, { name: "a" })).toBe(false);
|
|
33
|
+
});
|
|
34
|
+
it("compares arrays in order, Sets and Maps order-independently", () => {
|
|
23
35
|
expect(matches([1, 2, 3], [1, 2, 3])).toBe(true);
|
|
24
36
|
expect(matches([1, 2, 3], [3, 2, 1])).toBe(false);
|
|
25
|
-
|
|
26
|
-
expect(matches(
|
|
27
|
-
expect(matches(
|
|
37
|
+
expect(matches(new Set([1, 2, 3]), new Set([3, 1, 2]))).toBe(true);
|
|
38
|
+
expect(matches(new Set([1, 2]), new Set([1, 2, 3]))).toBe(false);
|
|
39
|
+
expect(matches(new Set([1, 2]), [1, 2])).toBe(false); // Set ≠ Array
|
|
40
|
+
// Set of entities: content pairs order-independently, ids ignored.
|
|
41
|
+
expect(matches(new Set([{ id: 1, x: 1 }, { id: 2, x: 2 }]), new Set([{ x: 2 }, { x: 1 }]))).toBe(true);
|
|
42
|
+
// Map entries pair by (meaningful) key regardless of insertion order.
|
|
43
|
+
expect(matches(new Map([["a", 1], ["b", 2]]), new Map([["b", 2], ["a", 1]]))).toBe(true);
|
|
44
|
+
expect(matches(new Map([["a", 1]]), new Map([["a", 2]]))).toBe(false);
|
|
45
|
+
expect(matches(new Map([["a", 1]]), new Map([["b", 1]]))).toBe(false);
|
|
28
46
|
});
|
|
29
47
|
describe("ref — id correspondence up to renaming", () => {
|
|
30
48
|
it("binds a label to the first actual and requires later ones to match", () => {
|
|
@@ -37,6 +55,20 @@ describe("Match.matches", () => {
|
|
|
37
55
|
expect(matches([5, 6], [ref("a"), ref("b")])).toBe(true);
|
|
38
56
|
expect(matches([5, 5], [ref("a"), ref("b")])).toBe(false);
|
|
39
57
|
});
|
|
58
|
+
it("corresponds across an unordered Set boundary", () => {
|
|
59
|
+
// `sel` points at the entity that has x:1 — whatever ecs id that entity got.
|
|
60
|
+
// The referenced entity lives in a Set (nondeterministic order), so the
|
|
61
|
+
// pairing must try candidates until the ref binding is globally consistent.
|
|
62
|
+
const actual = { sel: 100, items: new Set([{ id: 100, x: 1 }, { id: 200, x: 2 }]) };
|
|
63
|
+
const expected = {
|
|
64
|
+
sel: ref("a"),
|
|
65
|
+
items: new Set([{ id: ref("a"), x: 1 }, { x: 2 }]),
|
|
66
|
+
};
|
|
67
|
+
expect(matches(actual, expected)).toBe(true);
|
|
68
|
+
// `sel` points at an id no item carries → no consistent pairing exists.
|
|
69
|
+
const dangling = { sel: 999, items: new Set([{ id: 100, x: 1 }, { id: 200, x: 2 }]) };
|
|
70
|
+
expect(matches(dangling, expected)).toBe(false);
|
|
71
|
+
});
|
|
40
72
|
});
|
|
41
73
|
});
|
|
42
74
|
//# sourceMappingURL=match.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.test.js","sourceRoot":"","sources":["../../src/match/match.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc;QACvD,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe;QACvD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtF,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"match.test.js","sourceRoot":"","sources":["../../src/match/match.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/data-testing",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.97",
|
|
4
4
|
"description": "Conformance-testing utilities (Match + Conformance runners) for @adobe/data ECS features",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"LICENSE"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@adobe/data": "0.9.
|
|
18
|
+
"@adobe/data": "0.9.97"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
21
|
"vitest": "^1.6.0"
|