@adobe/data-testing 0.9.102 → 0.9.103
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.
- package/dist/conformance/cases.d.ts +11 -4
- package/dist/conformance/cases.js +6 -2
- package/dist/conformance/cases.js.map +1 -1
- package/dist/conformance/cases.type-test.d.ts +5 -4
- package/dist/conformance/cases.type-test.js +12 -6
- package/dist/conformance/cases.type-test.js.map +1 -1
- package/dist/conformance/discover.js +2 -4
- package/dist/conformance/discover.js.map +1 -1
- package/dist/conformance/public.d.ts +1 -1
- package/dist/conformance/public.js +1 -1
- package/dist/conformance/public.js.map +1 -1
- package/dist/conformance/run-spec.empty-cases.test.js +4 -3
- package/dist/conformance/run-spec.empty-cases.test.js.map +1 -1
- package/dist/conformance/run-spec.js +3 -4
- package/dist/conformance/run-spec.js.map +1 -1
- package/dist/conformance/run-spec.test.js +18 -14
- package/dist/conformance/run-spec.test.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Schema } from "@adobe/data/schema";
|
|
2
|
-
import type { Case } from "./types.js";
|
|
2
|
+
import type { Case, DerivationCase } from "./types.js";
|
|
3
3
|
type AnyFn = (...args: never[]) => unknown;
|
|
4
4
|
type ArgsOf<F extends AnyFn> = Parameters<F> extends [unknown, infer A, ...unknown[]] ? A : void;
|
|
5
5
|
type ArgsSchemaMismatch = {
|
|
@@ -20,13 +20,20 @@ type CasesOptions<F extends AnyFn, S extends Schema> = {
|
|
|
20
20
|
*/
|
|
21
21
|
readonly args?: S & (ArgsOf<F> extends Schema.ToType<S> ? unknown : ArgsSchemaMismatch);
|
|
22
22
|
};
|
|
23
|
-
export type
|
|
23
|
+
export type CasesResult<State, F extends AnyFn> = {
|
|
24
24
|
readonly args?: Schema;
|
|
25
25
|
readonly cases: readonly Case<State, ArgsOf<F>>[];
|
|
26
26
|
};
|
|
27
|
+
export type DerivationsResult<F extends AnyFn> = {
|
|
28
|
+
readonly cases: readonly DerivationCase<Parameters<F>[0], ReturnType<F>>[];
|
|
29
|
+
};
|
|
27
30
|
export interface CasesBuilder<State> {
|
|
28
|
-
<F extends AnyFn>(fn: F, ...cases: readonly Case<State, ArgsOf<NoInfer<F>>>[]):
|
|
29
|
-
<F extends AnyFn, const S extends Schema = Schema>(fn: F, options: CasesOptions<F, S>, ...cases: readonly Case<State, ArgsOf<NoInfer<F>>>[]):
|
|
31
|
+
<F extends AnyFn>(fn: F, ...cases: readonly Case<State, ArgsOf<NoInfer<F>>>[]): CasesResult<State, F>;
|
|
32
|
+
<F extends AnyFn, const S extends Schema = Schema>(fn: F, options: CasesOptions<F, S>, ...cases: readonly Case<State, ArgsOf<NoInfer<F>>>[]): CasesResult<State, F>;
|
|
33
|
+
}
|
|
34
|
+
export interface DerivationsBuilder {
|
|
35
|
+
<F extends AnyFn>(fn: F, ...cases: readonly DerivationCase<Parameters<NoInfer<F>>[0], ReturnType<NoInfer<F>>>[]): DerivationsResult<F>;
|
|
30
36
|
}
|
|
31
37
|
export declare const casesBuilder: <State>() => CasesBuilder<State>;
|
|
38
|
+
export declare const derivationsBuilder: () => DerivationsBuilder;
|
|
32
39
|
export {};
|
|
@@ -2,10 +2,14 @@ export const casesBuilder = () => {
|
|
|
2
2
|
const build = (_fn, ...rest) => {
|
|
3
3
|
const first = rest[0];
|
|
4
4
|
// An options object has no `name` (every case does), so it discriminates the
|
|
5
|
-
// two overloads at runtime.
|
|
5
|
+
// two overloads at runtime; either way the result is one `{ args?, cases }` shape.
|
|
6
6
|
const isOptions = first !== null && typeof first === "object" && !Array.isArray(first) && !("name" in first);
|
|
7
|
-
return isOptions ? { ...first, cases: rest.slice(1) } : rest;
|
|
7
|
+
return isOptions ? { ...first, cases: rest.slice(1) } : { cases: rest };
|
|
8
8
|
};
|
|
9
9
|
return build;
|
|
10
10
|
};
|
|
11
|
+
export const derivationsBuilder = () => {
|
|
12
|
+
const build = (_fn, ...cases) => ({ cases });
|
|
13
|
+
return build;
|
|
14
|
+
};
|
|
11
15
|
//# sourceMappingURL=cases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cases.js","sourceRoot":"","sources":["../../src/conformance/cases.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cases.js","sourceRoot":"","sources":["../../src/conformance/cases.ts"],"names":[],"mappings":"AA6EA,MAAM,CAAC,MAAM,YAAY,GAAG,GAA+B,EAAE;IAC3D,MAAM,KAAK,GAAG,CAAC,GAAU,EAAE,GAAG,IAAwB,EAAW,EAAE;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,6EAA6E;QAC7E,mFAAmF;QACnF,MAAM,SAAS,GACb,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;QAC7F,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,GAAI,KAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACtF,CAAC,CAAC;IACF,OAAO,KAA4B,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAuB,EAAE;IACzD,MAAM,KAAK,GAAG,CAAC,GAAU,EAAE,GAAG,KAAyB,EAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,OAAO,KAA2B,CAAC;AACrC,CAAC,CAAC"}
|
|
@@ -4,13 +4,14 @@ type State = {
|
|
|
4
4
|
}>;
|
|
5
5
|
readonly selected: number;
|
|
6
6
|
};
|
|
7
|
-
export declare const good: import("./cases.js").
|
|
7
|
+
export declare const good: import("./cases.js").CasesResult<State, (_s: Pick<State, "selected">, args: {
|
|
8
8
|
readonly id: number;
|
|
9
9
|
readonly count: number;
|
|
10
10
|
}) => Pick<State, "selected">>;
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
11
|
+
export declare const noArgsResult: import("./cases.js").CasesResult<State, (_s: Pick<State, "selected">) => Pick<State, "selected">>;
|
|
12
|
+
export declare const derived: import("./cases.js").DerivationsResult<(_s: State) => number>;
|
|
13
|
+
export declare const bad: import("./cases.js").CasesResult<State, (_s: Pick<State, "selected">, args: {
|
|
13
14
|
readonly id: number;
|
|
14
15
|
readonly count: number;
|
|
15
|
-
}
|
|
16
|
+
}) => Pick<State, "selected">>;
|
|
16
17
|
export {};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
-
// Type-level checks for the `cases` builder's args-schema pin.
|
|
2
|
+
// Type-level checks for the `cases` builder's args-schema pin and its uniform envelope.
|
|
3
3
|
import { Entity } from "@adobe/data/ecs";
|
|
4
|
-
import { casesBuilder } from "./cases.js";
|
|
4
|
+
import { casesBuilder, derivationsBuilder } from "./cases.js";
|
|
5
5
|
const cases = casesBuilder();
|
|
6
|
+
const derivations = derivationsBuilder();
|
|
6
7
|
const reparent = (_s, args) => ({
|
|
7
8
|
selected: args.id,
|
|
8
9
|
});
|
|
@@ -12,11 +13,16 @@ export const good = cases(reparent,
|
|
|
12
13
|
// No `required`: the args type `{ id, count }` is still assignable to the schema's
|
|
13
14
|
// `ToType` (`{ id?, count? }`), and a marked field is detected regardless.
|
|
14
15
|
{ args: { type: "object", properties: { id: Entity.schema, count: { type: "integer" } } } }, { name: "ok", before: {}, args: { id: 1, count: 2 }, after: { selected: 1 } });
|
|
15
|
-
//
|
|
16
|
+
// Both forms emit the SAME envelope `{ args?, cases }` — never a bare array.
|
|
17
|
+
const _hasArgs = good.args;
|
|
16
18
|
const _hasCases = good.cases;
|
|
17
|
-
// The no-args overload
|
|
18
|
-
export const
|
|
19
|
-
const
|
|
19
|
+
// The no-args overload emits the same envelope (no bare array).
|
|
20
|
+
export const noArgsResult = cases(noArgs, { name: "n", before: {}, after: { selected: 0 } });
|
|
21
|
+
const _noArgsCases = noArgsResult.cases;
|
|
22
|
+
// A derivation emits `{ cases }` through the parallel builder.
|
|
23
|
+
const derive = (_s) => _s.selected;
|
|
24
|
+
export const derived = derivations(derive, { name: "d", input: { entities: new Map(), selected: 0 }, value: 0 });
|
|
25
|
+
const _derivedCases = derived.cases;
|
|
20
26
|
// A schema that DIVERGES from the signature (id typed as string) must be rejected:
|
|
21
27
|
// `Schema.ToType<args>.id` is `string`, but the transition's `args.id` is `number`.
|
|
22
28
|
const badArgs = { type: "object", properties: { id: { type: "string" }, count: { type: "integer" } } };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cases.type-test.js","sourceRoot":"","sources":["../../src/conformance/cases.type-test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD
|
|
1
|
+
{"version":3,"file":"cases.type-test.js","sourceRoot":"","sources":["../../src/conformance/cases.type-test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,wFAAwF;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAG9D,MAAM,KAAK,GAAG,YAAY,EAAS,CAAC;AACpC,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;AAEzC,MAAM,QAAQ,GAAG,CAAC,EAA2B,EAAE,IAAqD,EAA2B,EAAE,CAAC,CAAC;IACjI,QAAQ,EAAE,IAAI,CAAC,EAAE;CAClB,CAAC,CAAC;AACH,MAAM,MAAM,GAAG,CAAC,EAA2B,EAA2B,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAE3F,qEAAqE;AACrE,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CACvB,QAAQ;AACR,mFAAmF;AACnF,2EAA2E;AAC3E,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAC3F,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAC9E,CAAC;AACF,6EAA6E;AAC7E,MAAM,QAAQ,GAA0B,IAAI,CAAC,IAAI,CAAC;AAClD,MAAM,SAAS,GAA2B,IAAI,CAAC,KAAK,CAAC;AAErD,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7F,MAAM,YAAY,GAAuB,YAAY,CAAC,KAAK,CAAC;AAE5D,+DAA+D;AAC/D,MAAM,MAAM,GAAG,CAAC,EAAS,EAAU,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;AAClD,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACjH,MAAM,aAAa,GAAuB,OAAO,CAAC,KAAK,CAAC;AAExD,mFAAmF;AACnF,oFAAoF;AACpF,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAW,CAAC;AAChH,wEAAwE;AACxE,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
1
|
+
// Every `cases` export is the builder envelope `{ args?, cases }` (a bare array is no
|
|
2
|
+
// longer valid). Read the list and optional schema off it — one shape, no branch.
|
|
3
3
|
const normalizeCases = (raw) => {
|
|
4
|
-
if (Array.isArray(raw))
|
|
5
|
-
return { list: raw };
|
|
6
4
|
if (raw !== null && typeof raw === "object" && Array.isArray(raw.cases)) {
|
|
7
5
|
const { cases, args } = raw;
|
|
8
6
|
return { list: cases, argsSchema: args };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/conformance/discover.ts"],"names":[],"mappings":"AAWA,
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/conformance/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { Case, Cases, DerivationCase, DerivationCases, Effects, ServiceCall } from "./types.js";
|
|
2
|
-
export { casesBuilder, type CasesBuilder, type
|
|
2
|
+
export { casesBuilder, derivationsBuilder, type CasesBuilder, type CasesResult, type DerivationsBuilder, type DerivationsResult, } from "./cases.js";
|
|
3
3
|
export { runSpec, type SpecRunConfig } from "./run-spec.js";
|
|
4
4
|
export { runTransactions, type TransactionRunConfig } from "./run-transactions.js";
|
|
5
5
|
export { runActions, type ActionRunConfig } from "./run-actions.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/conformance/public.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/conformance/public.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,kBAAkB,GAKnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAsB,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,eAAe,EAA6B,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAwB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAA0C,MAAM,kBAAkB,CAAC;AACtF,kFAAkF;AAClF,sDAAsD;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
2
|
import { Conformance } from "../index.js";
|
|
3
|
-
//
|
|
4
|
-
// suite-less. Empty discovery registers a no-op so Vitest still
|
|
3
|
+
// A module whose envelope holds `cases: []` opens an empty `describe` and used to
|
|
4
|
+
// leave the file suite-less. Empty discovery registers a no-op so Vitest still
|
|
5
|
+
// collects a suite.
|
|
5
6
|
Conformance.runSpec({
|
|
6
7
|
state: { create: () => ({ n: 0 }) },
|
|
7
8
|
transitions: {
|
|
8
9
|
"./empty-cases.ts": {
|
|
9
10
|
noop: (state) => state,
|
|
10
|
-
cases: [],
|
|
11
|
+
cases: { cases: [] },
|
|
11
12
|
},
|
|
12
13
|
},
|
|
13
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-spec.empty-cases.test.js","sourceRoot":"","sources":["../../src/conformance/run-spec.empty-cases.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"run-spec.empty-cases.test.js","sourceRoot":"","sources":["../../src/conformance/run-spec.empty-cases.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,kFAAkF;AAClF,+EAA+E;AAC/E,oBAAoB;AACpB,WAAW,CAAC,OAAO,CAAC;IAClB,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACnC,WAAW,EAAE;QACX,kBAAkB,EAAE;YAClB,IAAI,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC,KAAK;YACrC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SACrB;KACF;CACF,CAAC,CAAC"}
|
|
@@ -38,10 +38,9 @@ export const runSpec = (config) => {
|
|
|
38
38
|
suites.push({ kind: "invalid", path, label, exportNames });
|
|
39
39
|
continue;
|
|
40
40
|
}
|
|
41
|
-
// `cases` is
|
|
42
|
-
//
|
|
43
|
-
const
|
|
44
|
-
const cases = Array.isArray(rawCases) ? rawCases : (rawCases?.cases ?? []);
|
|
41
|
+
// `cases` is the builder envelope `{ args?, cases }`; the pure side ignores the
|
|
42
|
+
// `args` schema (spec-ids need no resolution) and reads the list.
|
|
43
|
+
const cases = module["cases"]?.cases ?? [];
|
|
45
44
|
// Empty `cases: []` is not a suite (and would open a Vitest describe with no
|
|
46
45
|
// tests, which fails even when this file has other suites).
|
|
47
46
|
if (cases.length === 0)
|
|
@@ -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,EAAY,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,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;AAyCtD,kFAAkF;AAClF,kFAAkF;AAClF,oFAAoF;AACpF,+EAA+E;AAC/E,oFAAoF;AACpF,4EAA4E;AAC5E,EAAE;AACF,2EAA2E;AAC3E,kFAAkF;AAClF,4EAA4E;AAC5E,gFAAgF;AAChF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAqB,EAAQ,EAAE;IACrD,iFAAiF;IACjF,+EAA+E;IAC/E,oEAAoE;IACpE,MAAM,YAAY,GAAiB,MAAM,CAAC,MAAM;QAC9C,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAe,CAAC,CAAC,gBAAgB,EAAE;QAC7E,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAChE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QAC7C,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CACtC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,UAAU,CAC3C,CAAC;QACF,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;YACxB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;YAC5B,CAAC,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"run-spec.js","sourceRoot":"","sources":["../../src/conformance/run-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,20 +8,24 @@ Conformance.runSpec({
|
|
|
8
8
|
transitions: {
|
|
9
9
|
"./increment.ts": {
|
|
10
10
|
increment,
|
|
11
|
-
cases
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
11
|
+
// A module's `cases` export is the builder envelope `{ cases }` (bare arrays are
|
|
12
|
+
// no longer valid); build it directly so run-spec reads the same shape.
|
|
13
|
+
cases: {
|
|
14
|
+
cases: [
|
|
15
|
+
{
|
|
16
|
+
name: "adds the delta over State.create()",
|
|
17
|
+
before: {},
|
|
18
|
+
args: { by: 2 },
|
|
19
|
+
after: { n: 2 },
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "honors a non-default before delta",
|
|
23
|
+
before: { n: 10 },
|
|
24
|
+
args: { by: 1 },
|
|
25
|
+
after: { n: 11 },
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
},
|
|
25
29
|
},
|
|
26
30
|
},
|
|
27
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-spec.test.js","sourceRoot":"","sources":["../../src/conformance/run-spec.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,iFAAiF;AACjF,2EAA2E;AAC3E,MAAM,SAAS,GAAG,CAChB,KAAoB,EACpB,EAAE,EAAE,EAAkB,EACP,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAE1C,WAAW,CAAC,OAAO,CAAC;IAClB,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACnC,WAAW,EAAE;QACX,gBAAgB,EAAE;YAChB,SAAS;YACT,KAAK,EAAE;gBACL;
|
|
1
|
+
{"version":3,"file":"run-spec.test.js","sourceRoot":"","sources":["../../src/conformance/run-spec.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,iFAAiF;AACjF,2EAA2E;AAC3E,MAAM,SAAS,GAAG,CAChB,KAAoB,EACpB,EAAE,EAAE,EAAkB,EACP,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAE1C,WAAW,CAAC,OAAO,CAAC;IAClB,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACnC,WAAW,EAAE;QACX,gBAAgB,EAAE;YAChB,SAAS;YACT,iFAAiF;YACjF,wEAAwE;YACxE,KAAK,EAAE;gBACL,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,oCAAoC;wBAC1C,MAAM,EAAE,EAAE;wBACV,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;wBACf,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;qBAChB;oBACD;wBACE,IAAI,EAAE,mCAAmC;wBACzC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;wBACjB,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;wBACf,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;qBACjB;iBACF;aACF;SACF;KACF;CACF,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/data-testing",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.103",
|
|
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.103"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
21
|
"vitest": "^1.6.0"
|