@overkill-dev/run 0.0.29 → 0.0.31

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.
Files changed (72) hide show
  1. package/assertion-protocol/assertion-node-shape.d.ts +4 -3
  2. package/assertion-protocol/assertion-node-shape.d.ts.map +1 -1
  3. package/assertion-protocol/assertion-node.d.ts +2 -2
  4. package/assertion-protocol/assertion-node.d.ts.map +1 -1
  5. package/assertion-protocol/assertion-reference.d.ts +2 -2
  6. package/assertion-protocol/assertion-reference.d.ts.map +1 -1
  7. package/assertion-protocol/assertions/collection.d.ts +2 -2
  8. package/assertion-protocol/assertions/collection.d.ts.map +1 -1
  9. package/assertion-protocol/assertions/fail.d.ts +2 -2
  10. package/assertion-protocol/assertions/fail.d.ts.map +1 -1
  11. package/assertion-protocol/assertions/numeric.d.ts +2 -2
  12. package/assertion-protocol/assertions/numeric.d.ts.map +1 -1
  13. package/assertion-protocol/assertions/string.d.ts +2 -2
  14. package/assertion-protocol/assertions/string.d.ts.map +1 -1
  15. package/assertion-protocol/assertions/type-shape.d.ts +3 -3
  16. package/assertion-protocol/assertions/type-shape.d.ts.map +1 -1
  17. package/assertion-protocol/evaluation.d.ts.map +1 -1
  18. package/assertion-protocol/evaluation.js +8 -3
  19. package/assertion-protocol/evaluation.js.map +1 -1
  20. package/assertion-protocol/source-location-forwarding.js +26 -0
  21. package/assertion-protocol/source-location-forwarding.js.map +1 -0
  22. package/assertion-protocol/source-location.js +1 -0
  23. package/assertion-protocol/source-location.js.map +1 -1
  24. package/assertion-protocol/thrown-matcher.d.ts +2 -2
  25. package/assertion-protocol/thrown-matcher.d.ts.map +1 -1
  26. package/assertion-protocol/thrown-matcher.js +23 -23
  27. package/assertion-protocol/thrown-matcher.js.map +1 -1
  28. package/engine/assertion-facade.d.ts.map +1 -1
  29. package/engine/assertion-facade.js +5 -4
  30. package/engine/assertion-facade.js.map +1 -1
  31. package/engine/custom-assertion-recording.d.ts +3 -3
  32. package/engine/custom-assertion-recording.d.ts.map +1 -1
  33. package/engine/custom-assertion-recording.js +19 -19
  34. package/engine/custom-assertion-recording.js.map +1 -1
  35. package/engine/execution-result.js +8 -3
  36. package/engine/execution-result.js.map +1 -1
  37. package/engine/execution.d.ts.map +1 -1
  38. package/engine/execution.js +9 -2
  39. package/engine/execution.js.map +1 -1
  40. package/engine/reporter.d.ts +9 -2
  41. package/engine/reporter.d.ts.map +1 -1
  42. package/engine/reporter.js.map +1 -1
  43. package/engine/require-assertion-facade.d.ts.map +1 -1
  44. package/engine/require-assertion-facade.js +25 -24
  45. package/engine/require-assertion-facade.js.map +1 -1
  46. package/engine/run-result.d.ts +1 -1
  47. package/engine/run-result.d.ts.map +1 -1
  48. package/engine/test-node.d.ts +7 -6
  49. package/engine/test-node.d.ts.map +1 -1
  50. package/engine/test-node.js +22 -8
  51. package/engine/test-node.js.map +1 -1
  52. package/engine/test-plan.d.ts +10 -9
  53. package/engine/test-plan.d.ts.map +1 -1
  54. package/engine/test-plan.js +42 -23
  55. package/engine/test-plan.js.map +1 -1
  56. package/package.json +2 -1
  57. package/packages/engine/assertion-protocol.entry-point.d.ts +1 -1
  58. package/packages/engine/assertion-protocol.entry-point.d.ts.map +1 -1
  59. package/packages/engine/assertion-protocol.entry-point.js.map +1 -1
  60. package/readme.md +1 -0
  61. package/run/collected-run-plan.js +11 -7
  62. package/run/collected-run-plan.js.map +1 -1
  63. package/run/run-list-renderer.js +41 -16
  64. package/run/run-list-renderer.js.map +1 -1
  65. package/run/run-selection.js +3 -1
  66. package/run/run-selection.js.map +1 -1
  67. package/run/run-test-modules.js +0 -1
  68. package/run/run-test-modules.js.map +1 -1
  69. package/run/run-types.d.ts +2 -3
  70. package/run/run-types.d.ts.map +1 -1
  71. package/run/run-types.js.map +1 -1
  72. package/sbom.cdx.json +4 -4
@@ -1,3 +1,4 @@
1
+ import { sourceLocationsWithCurrentForwarding } from "../assertion-protocol/source-location-forwarding.js";
1
2
  import { captureSourceLocation } from "../assertion-protocol/source-location.js";
2
3
  import { recordRequireReference } from "./custom-assertion-recording.js";
3
4
  function messageFromOptions(options, annotation) {
@@ -12,36 +13,36 @@ export function createRecordingRequireFacadeWithLocation(sink, annotation, captu
12
13
  sink.recordRequire({
13
14
  actual,
14
15
  check: 'array',
15
- location: captureLocation(),
16
16
  message: messageFromOptions(options, annotation),
17
- source: 'require'
17
+ source: 'require',
18
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
18
19
  });
19
20
  },
20
21
  boolean(actual, options) {
21
22
  sink.recordRequire({
22
23
  actual,
23
24
  check: 'boolean',
24
- location: captureLocation(),
25
25
  message: messageFromOptions(options, annotation),
26
- source: 'require'
26
+ source: 'require',
27
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
27
28
  });
28
29
  },
29
30
  defined(actual, options) {
30
31
  sink.recordRequire({
31
32
  actual,
32
33
  check: 'defined',
33
- location: captureLocation(),
34
34
  message: messageFromOptions(options, annotation),
35
- source: 'require'
35
+ source: 'require',
36
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
36
37
  });
37
38
  },
38
39
  function(actual, options) {
39
40
  sink.recordRequire({
40
41
  actual,
41
42
  check: 'function',
42
- location: captureLocation(),
43
43
  message: messageFromOptions(options, annotation),
44
- source: 'require'
44
+ source: 'require',
45
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
45
46
  });
46
47
  },
47
48
  hasProperty(actual, key, options) {
@@ -49,9 +50,9 @@ export function createRecordingRequireFacadeWithLocation(sink, annotation, captu
49
50
  actual,
50
51
  check: 'has-property',
51
52
  key,
52
- location: captureLocation(),
53
53
  message: messageFromOptions(options, annotation),
54
- source: 'require'
54
+ source: 'require',
55
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
55
56
  });
56
57
  },
57
58
  instanceOf(actual, expected, options) {
@@ -59,64 +60,64 @@ export function createRecordingRequireFacadeWithLocation(sink, annotation, captu
59
60
  actual,
60
61
  check: 'instance-of',
61
62
  expected,
62
- location: captureLocation(),
63
63
  message: messageFromOptions(options, annotation),
64
- source: 'require'
64
+ source: 'require',
65
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
65
66
  });
66
67
  },
67
68
  notNull(actual, options) {
68
69
  sink.recordRequire({
69
70
  actual,
70
71
  check: 'not-null',
71
- location: captureLocation(),
72
72
  message: messageFromOptions(options, annotation),
73
- source: 'require'
73
+ source: 'require',
74
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
74
75
  });
75
76
  },
76
77
  null(actual, options) {
77
78
  sink.recordRequire({
78
79
  actual,
79
80
  check: 'null',
80
- location: captureLocation(),
81
81
  message: messageFromOptions(options, annotation),
82
- source: 'require'
82
+ source: 'require',
83
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
83
84
  });
84
85
  },
85
86
  number(actual, options) {
86
87
  sink.recordRequire({
87
88
  actual,
88
89
  check: 'number',
89
- location: captureLocation(),
90
90
  message: messageFromOptions(options, annotation),
91
- source: 'require'
91
+ source: 'require',
92
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
92
93
  });
93
94
  },
94
95
  object(actual, options) {
95
96
  sink.recordRequire({
96
97
  actual,
97
98
  check: 'object',
98
- location: captureLocation(),
99
99
  message: messageFromOptions(options, annotation),
100
- source: 'require'
100
+ source: 'require',
101
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
101
102
  });
102
103
  },
103
104
  string(actual, options) {
104
105
  sink.recordRequire({
105
106
  actual,
106
107
  check: 'string',
107
- location: captureLocation(),
108
108
  message: messageFromOptions(options, annotation),
109
- source: 'require'
109
+ source: 'require',
110
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
110
111
  });
111
112
  }
112
113
  };
113
114
  function callRequireReference(reference, ...parameters) {
114
115
  recordRequireReference({
115
116
  annotation,
116
- location: captureLocation(),
117
117
  parameters,
118
118
  reference,
119
- sink
119
+ sink,
120
+ sourceLocations: sourceLocationsWithCurrentForwarding(captureLocation)
120
121
  });
121
122
  }
122
123
  return Object.assign(callRequireReference, methods);
@@ -1 +1 @@
1
- {"version":3,"file":"require-assertion-facade.js","sourceRoot":"","sources":["../../../../source/engine/require-assertion-facade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"require-assertion-facade.js","sourceRoot":"","sources":["../../../../source/engine/require-assertion-facade.ts"],"names":[],"mappings":"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"}
@@ -125,7 +125,7 @@ export type RunResourceUsageTracker = {
125
125
  readonly start: (onSample?: (snapshot: ResourceUsageSnapshot) => void) => void;
126
126
  };
127
127
  export type OrphanedNode = {
128
- readonly definitionLocation: SourceLocation;
128
+ readonly definitionLocations: NonEmptyReadonlyArray<SourceLocation>;
129
129
  readonly file: string | null;
130
130
  readonly kind: 'suite' | 'table' | 'test';
131
131
  readonly title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"run-result.d.ts","sourceRoot":"","sources":["../../../../source/engine/run-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACxH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,wBAAwB,GAAG;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;CACtD,CAAC;AAEF,KAAK,kBAAkB,GAAG,wBAAwB,CAAC,MAAM,wBAAwB,CAAC,CAAC;AAEnF,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,KAAK,EAAE;QACZ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACjC,QAAQ,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;IACxD,QAAQ,CAAC,yBAAyB,EAAE,6BAA6B,CAAC;IAClE,QAAQ,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;IAC5D,QAAQ,CAAC,2BAA2B,EAAE,gCAAgC,CAAC;IACvE,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;IAC5D,QAAQ,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;IAC9D,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,6BAA6B,CAAC,MAAM,6BAA6B,CAAC,CAAC;AAEzG,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAEjH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,2BAA2B,GAAG,mBAAmB,CAQ3G;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,mBAAmB,GAAG,WAAW,GAAG,WAAW,CAAC;AACxF,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,oBAAoB,GAAG,gBAAgB,CAAC;AAEpG,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAC;IACpC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,mCAAmC,EAAE,MAAM,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,gBAAgB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,KAAK,IAAI,CAAC;CAClF,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAEpE"}
1
+ {"version":3,"file":"run-result.d.ts","sourceRoot":"","sources":["../../../../source/engine/run-result.ts"],"names":[],"mappings":"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"}
@@ -17,11 +17,12 @@ export type TestScope = {
17
17
  readonly signal: AbortSignal;
18
18
  };
19
19
  export type TestBody = (scope: TestScope) => AssertionResult | Promise<AssertionResult>;
20
+ export type DefinitionLocations = NonEmptyReadonlyArray<SourceLocation>;
20
21
  export type TestCase = {
21
22
  readonly [testNodeBrand]: true;
22
23
  readonly [testNodeOwnerBrand]: TestNodeOwner;
23
24
  readonly body: TestBody;
24
- readonly definitionLocation: SourceLocation;
25
+ readonly definitionLocations: DefinitionLocations;
25
26
  readonly kind: 'test';
26
27
  readonly metadata: Metadata;
27
28
  readonly title: string;
@@ -30,7 +31,7 @@ export type Suite = {
30
31
  readonly [testNodeBrand]: true;
31
32
  readonly [testNodeOwnerBrand]: TestNodeOwner;
32
33
  readonly children: readonly TestNode[];
33
- readonly definitionLocation: SourceLocation;
34
+ readonly definitionLocations: DefinitionLocations;
34
35
  readonly kind: 'suite';
35
36
  readonly metadata: Metadata;
36
37
  readonly title: string;
@@ -45,7 +46,7 @@ export type Table = {
45
46
  readonly [testNodeBrand]: true;
46
47
  readonly [testNodeOwnerBrand]: TestNodeOwner;
47
48
  readonly cases: readonly TableCase[];
48
- readonly definitionLocation: SourceLocation;
49
+ readonly definitionLocations: DefinitionLocations;
49
50
  readonly kind: 'table';
50
51
  readonly metadata: Metadata;
51
52
  readonly title: string;
@@ -74,7 +75,7 @@ export type TestNodeFactoryOptions = {
74
75
  };
75
76
  export type TestCaseOptions = {
76
77
  readonly body: TestBody;
77
- readonly definitionLocation?: SourceLocation;
78
+ readonly definitionLocations: DefinitionLocations;
78
79
  readonly metadata: Metadata;
79
80
  readonly title: string;
80
81
  };
@@ -85,7 +86,7 @@ export type RootOptions = {
85
86
  };
86
87
  export type SuiteOptions = {
87
88
  readonly children: readonly unknown[];
88
- readonly definitionLocation?: SourceLocation;
89
+ readonly definitionLocations: DefinitionLocations;
89
90
  readonly metadata: Metadata;
90
91
  readonly title: string;
91
92
  };
@@ -97,7 +98,7 @@ export type TableCaseOptions = {
97
98
  };
98
99
  export type TableOptions = {
99
100
  readonly cases: readonly TableCaseOptions[];
100
- readonly definitionLocation?: SourceLocation;
101
+ readonly definitionLocations: DefinitionLocations;
101
102
  readonly metadata: Metadata;
102
103
  readonly title: string;
103
104
  };
@@ -1 +1 @@
1
- {"version":3,"file":"test-node.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,mBAAmB,EACnB,eAAe,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE3G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,QAAA,MAAM,aAAa,eAA8C,CAAC;AAClE,QAAA,MAAM,aAAa,eAA8C,CAAC;AAClE,QAAA,MAAM,kBAAkB,eAAmD,CAAC;AAC5E,QAAA,MAAM,qBAAqB,eAA2D,CAAC;AAGvF,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAExF,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC/B,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAChB,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC/B,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAC;IACvC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAChB,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC/B,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAC/B,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,QAAQ,CAAC;IACxD,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,KAAK,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,KAAK,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,QAAQ,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD;AAMD,wBAAgB,oBAAoB,IAAI,aAAa,CAYpD;AAoBD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,KAAK,IAAI,QAAQ,CAEvF;AAyBD,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,EACpB,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,GAC3B,OAAO,CAAC,KAAK,IAAI,QAAQ,CAQ3B;AAiBD,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,sBAAsB,GAAG,eAAe,CAuG7F"}
1
+ {"version":3,"file":"test-node.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-node.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { unknownSourceLocation } from "../assertion-protocol/source-location.js";
2
1
  import { ensureMetadata } from "./metadata.js";
3
2
  const testNodeBrand = Symbol.for('@overkill-dev/engine/TestNode');
4
3
  const testRootBrand = Symbol.for('@overkill-dev/engine/TestRoot');
@@ -36,6 +35,11 @@ function ensureTestBody(body) {
36
35
  throw new TypeError('Test case body must be a function.');
37
36
  }
38
37
  }
38
+ function ensureDefinitionLocations(definitionLocations) {
39
+ if (definitionLocations.length === 0) {
40
+ throw new TypeError('Test node definition locations must contain at least one location.');
41
+ }
42
+ }
39
43
  export function isTestNode(value) {
40
44
  return typeof value === 'object' && value !== null && Object.hasOwn(value, testNodeBrand);
41
45
  }
@@ -74,14 +78,16 @@ function toTestNode(value, owner, plainObjectMessage, foreignNodeMessage) {
74
78
  export function createTestNodeFactory(factoryOptions) {
75
79
  const { owner, recordConstructedNode } = factoryOptions;
76
80
  function createTestCase(options) {
81
+ ensureTitleValue(options.title);
77
82
  ensureTitle(options.title);
78
83
  ensureMetadata(options.metadata);
79
84
  ensureTestBody(options.body);
85
+ ensureDefinitionLocations(options.definitionLocations);
80
86
  const testCase = {
81
87
  [testNodeBrand]: true,
82
88
  [testNodeOwnerBrand]: owner,
83
89
  body: options.body,
84
- definitionLocation: options.definitionLocation ?? unknownSourceLocation,
90
+ definitionLocations: options.definitionLocations,
85
91
  kind: 'test',
86
92
  metadata: options.metadata,
87
93
  title: options.title
@@ -90,6 +96,7 @@ export function createTestNodeFactory(factoryOptions) {
90
96
  return testCase;
91
97
  }
92
98
  function createRoot(options) {
99
+ ensureTitleValue(options.title);
93
100
  ensureTitle(options.title);
94
101
  ensureMetadata(options.metadata);
95
102
  const children = options.children.map(function validateChild(child) {
@@ -105,8 +112,10 @@ export function createTestNodeFactory(factoryOptions) {
105
112
  };
106
113
  }
107
114
  function createSuite(options) {
115
+ ensureTitleValue(options.title);
108
116
  ensureTitle(options.title);
109
117
  ensureMetadata(options.metadata);
118
+ ensureDefinitionLocations(options.definitionLocations);
110
119
  const children = options.children.map(function validateChild(child) {
111
120
  return toTestNode(child, owner, 'Suite children must be engine-created TestNode values.', 'Suite children must be created by the same engine instance.');
112
121
  });
@@ -114,7 +123,7 @@ export function createTestNodeFactory(factoryOptions) {
114
123
  [testNodeBrand]: true,
115
124
  [testNodeOwnerBrand]: owner,
116
125
  children,
117
- definitionLocation: options.definitionLocation ?? unknownSourceLocation,
126
+ definitionLocations: options.definitionLocations,
118
127
  kind: 'suite',
119
128
  metadata: options.metadata,
120
129
  title: options.title
@@ -122,20 +131,25 @@ export function createTestNodeFactory(factoryOptions) {
122
131
  recordConstructedNode(suite);
123
132
  return suite;
124
133
  }
125
- function createTable(options) {
126
- ensureTitle(options.title);
127
- ensureMetadata(options.metadata);
128
- for (const tableCase of options.cases) {
134
+ function ensureTableCases(cases) {
135
+ for (const tableCase of cases) {
129
136
  ensureTitleValue(tableCase.title);
130
137
  ensureTitle(tableCase.title);
131
138
  ensureMetadata(tableCase.metadata);
132
139
  ensureTestBody(tableCase.body);
133
140
  }
141
+ }
142
+ function createTable(options) {
143
+ ensureTitleValue(options.title);
144
+ ensureTitle(options.title);
145
+ ensureMetadata(options.metadata);
146
+ ensureDefinitionLocations(options.definitionLocations);
147
+ ensureTableCases(options.cases);
134
148
  const table = {
135
149
  [testNodeBrand]: true,
136
150
  [testNodeOwnerBrand]: owner,
137
151
  cases: options.cases,
138
- definitionLocation: options.definitionLocation ?? unknownSourceLocation,
152
+ definitionLocations: options.definitionLocations,
139
153
  kind: 'table',
140
154
  metadata: options.metadata,
141
155
  title: options.title
@@ -1 +1 @@
1
- {"version":3,"file":"test-node.js","sourceRoot":"","sources":["../../../../source/engine/test-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-node.js","sourceRoot":"","sources":["../../../../source/engine/test-node.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,16 @@ import { type Metadata, type ResolvedMetadata } from './metadata.ts';
4
4
  import type { OrphanedNode } from './run-result.ts';
5
5
  import { type RootOptions, type TestBody, type TestNode, type TestNodeOwner, type TestRoot } from './test-node.ts';
6
6
  export type TestPlanCaseBody = TestBody;
7
+ export type TestPlanSuitePathEntry = {
8
+ readonly definitionLocations: NonEmptyReadonlyArray<SourceLocation>;
9
+ readonly title: string;
10
+ };
7
11
  export type TestPlanCase = {
8
12
  readonly body: TestPlanCaseBody;
9
- readonly definitionLocation: SourceLocation;
13
+ readonly definitionLocations: NonEmptyReadonlyArray<SourceLocation>;
10
14
  readonly id: CaseId;
11
15
  readonly metadata: ResolvedMetadata;
12
- readonly suiteDefinitionLocations: readonly SourceLocation[];
13
- readonly suitePath: readonly string[];
16
+ readonly suitePath: readonly TestPlanSuitePathEntry[];
14
17
  };
15
18
  export type TestPlan = {
16
19
  readonly defined: number;
@@ -24,17 +27,15 @@ type TestPlanRoot = {
24
27
  readonly title: string;
25
28
  };
26
29
  export type TestPlanFactory = (root: TestRoot) => TestPlan;
27
- export type TestPlanFile = {
28
- readonly file: string;
29
- readonly metadata: Metadata;
30
- readonly testNode: TestNode;
31
- };
32
30
  type TestPlanRootOptions = {
33
31
  readonly metadata: Metadata;
34
32
  readonly title: string;
35
33
  };
36
34
  export type TestPlanFromTestFilesOptions = {
37
- readonly files: NonEmptyReadonlyArray<TestPlanFile>;
35
+ readonly files: NonEmptyReadonlyArray<{
36
+ readonly file: string;
37
+ readonly testNode: TestNode;
38
+ }>;
38
39
  readonly root: TestPlanRootOptions;
39
40
  };
40
41
  export type TestPlanFromTestFilesFactory = (options: TestPlanFromTestFilesOptions) => TestPlan;
@@ -1 +1 @@
1
- {"version":3,"file":"test-plan.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE3G,OAAO,EAA+C,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAIH,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACxB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAGH,KAAK,WAAW,EAIhB,KAAK,QAAQ,EAEb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,QAAQ,EAChB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,wBAAwB,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpD,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC/B,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACvC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,EAAE,4BAA4B,KAAK,QAAQ,CAAC;AAwO/F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,eAAe,CA0BpH;AAkBD,wBAAgB,kCAAkC,CAC9C,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,QAAQ,GAC/C,4BAA4B,CA6B9B"}
1
+ {"version":3,"file":"test-plan.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE3G,OAAO,EAA+C,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAGH,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACxB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAGH,KAAK,WAAW,EAIhB,KAAK,QAAQ,EAEb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,QAAQ,EAChB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAExC,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACpE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpD,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC;AAE3D,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACvC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;QAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,EAAE,4BAA4B,KAAK,QAAQ,CAAC;AAuP/F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,eAAe,CA0BpH;AAgCD,wBAAgB,kCAAkC,CAC9C,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,QAAQ,GAC/C,4BAA4B,CA6B9B"}
@@ -1,11 +1,16 @@
1
1
  import { serializeValue } from "../compare/serialized-value.js";
2
2
  import { caseIdentityKey, createCaseId, formatCaseId } from "./identity.js";
3
- import { ensureMetadata, resolveMetadata, resolveRootMetadata } from "./metadata.js";
3
+ import { resolveMetadata, resolveRootMetadata } from "./metadata.js";
4
4
  import { ensureOwnedTestRoot, isOwnedTestNode } from "./test-node.js";
5
5
  const minimumTableCaseCount = 2;
6
6
  function parameterIdentity(parameters) {
7
7
  return JSON.stringify(serializeValue(parameters));
8
8
  }
9
+ function suiteTitles(suitePath) {
10
+ return suitePath.map(function toTitle(entry) {
11
+ return entry.title;
12
+ });
13
+ }
9
14
  function duplicateTitleMessage(title, path) {
10
15
  const location = path.length === 0 ? '<root>' : path.join(' > ');
11
16
  return `Duplicate test node title under ${location}: ${title}.`;
@@ -19,16 +24,18 @@ function assertUniqueSiblingTitles(nodes, path) {
19
24
  seenTitles.add(node.title);
20
25
  }
21
26
  }
27
+ function isRecord(value) {
28
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
29
+ }
22
30
  function collectTestCase(testCase, context) {
23
31
  const resolvedMetadata = resolveMetadata(context.metadata, testCase.metadata);
24
32
  return {
25
33
  cases: [
26
34
  {
27
35
  body: testCase.body,
28
- definitionLocation: testCase.definitionLocation,
29
- id: createCaseId(context.file, context.suitePath, testCase.title, null),
36
+ definitionLocations: testCase.definitionLocations,
37
+ id: createCaseId(context.file, suiteTitles(context.suitePath), testCase.title, null),
30
38
  metadata: resolvedMetadata,
31
- suiteDefinitionLocations: context.suiteDefinitionLocations,
32
39
  suitePath: context.suitePath
33
40
  }
34
41
  ],
@@ -37,21 +44,22 @@ function collectTestCase(testCase, context) {
37
44
  }
38
45
  function collectTable(table, context) {
39
46
  if (table.cases.length < minimumTableCaseCount) {
40
- throw new TypeError(`Table must contain at least two cases: ${[...context.suitePath, table.title].join(' > ')}.`);
47
+ throw new TypeError(`Table must contain at least two cases: ${[...suiteTitles(context.suitePath), table.title].join(' > ')}.`);
41
48
  }
42
- assertUniqueSiblingTitles(table.cases, [...context.suitePath, table.title]);
43
- const tablePath = [...context.suitePath, table.title];
44
- const tablePathLocations = [...context.suiteDefinitionLocations, table.definitionLocation];
49
+ assertUniqueSiblingTitles(table.cases, [...suiteTitles(context.suitePath), table.title]);
50
+ const tablePath = [
51
+ ...context.suitePath,
52
+ { definitionLocations: table.definitionLocations, title: table.title }
53
+ ];
45
54
  const tableMetadata = resolveMetadata(context.metadata, table.metadata);
46
55
  return {
47
56
  cases: table.cases.map(function collectTableCase(tableCase) {
48
57
  const resolvedMetadata = resolveMetadata(tableMetadata, tableCase.metadata);
49
58
  return {
50
59
  body: tableCase.body,
51
- definitionLocation: table.definitionLocation,
52
- id: createCaseId(context.file, tablePath, tableCase.title, parameterIdentity(tableCase.parameters)),
60
+ definitionLocations: table.definitionLocations,
61
+ id: createCaseId(context.file, suiteTitles(tablePath), tableCase.title, parameterIdentity(tableCase.parameters)),
53
62
  metadata: resolvedMetadata,
54
- suiteDefinitionLocations: tablePathLocations,
55
63
  suitePath: tablePath
56
64
  };
57
65
  }),
@@ -62,8 +70,10 @@ function childCollectionContext(suite, context) {
62
70
  return {
63
71
  file: context.file,
64
72
  metadata: resolveMetadata(context.metadata, suite.metadata),
65
- suiteDefinitionLocations: [...context.suiteDefinitionLocations, suite.definitionLocation],
66
- suitePath: [...context.suitePath, suite.title]
73
+ suitePath: [
74
+ ...context.suitePath,
75
+ { definitionLocations: suite.definitionLocations, title: suite.title }
76
+ ]
67
77
  };
68
78
  }
69
79
  function mergeCollectedTestCases(collections) {
@@ -84,9 +94,9 @@ function collectNode(node, context) {
84
94
  return collectTable(node, context);
85
95
  }
86
96
  if (node.children.length === 0) {
87
- throw new TypeError(`Suite must contain at least one child: ${[...context.suitePath, node.title].join(' > ')}.`);
97
+ throw new TypeError(`Suite must contain at least one child: ${[...suiteTitles(context.suitePath), node.title].join(' > ')}.`);
88
98
  }
89
- assertUniqueSiblingTitles(node.children, [...context.suitePath, node.title]);
99
+ assertUniqueSiblingTitles(node.children, [...suiteTitles(context.suitePath), node.title]);
90
100
  const childContext = childCollectionContext(node, context);
91
101
  const children = mergeCollectedTestCases(node.children.map(function collectChild(child) {
92
102
  return collectNode(child, childContext);
@@ -105,7 +115,6 @@ function collectRoot(root, rootMetadata) {
105
115
  return collectNode(child, {
106
116
  file: null,
107
117
  metadata: rootMetadata,
108
- suiteDefinitionLocations: [],
109
118
  suitePath: []
110
119
  });
111
120
  }));
@@ -118,8 +127,7 @@ function collectTestFiles(root, files, rootMetadata) {
118
127
  }
119
128
  return collectNode(child, {
120
129
  file: file.file,
121
- metadata: resolveMetadata(rootMetadata, file.metadata),
122
- suiteDefinitionLocations: [],
130
+ metadata: rootMetadata,
123
131
  suitePath: []
124
132
  });
125
133
  }));
@@ -129,7 +137,7 @@ function toReachedNodeSet(reachedNodes) {
129
137
  }
130
138
  function createOrphanedNode(node) {
131
139
  return {
132
- definitionLocation: node.definitionLocation,
140
+ definitionLocations: node.definitionLocations,
133
141
  file: null,
134
142
  kind: node.kind,
135
143
  title: node.title
@@ -179,11 +187,22 @@ export function createTestPlanFactory(owner, constructedNodes) {
179
187
  };
180
188
  };
181
189
  }
182
- function ensureTestPlanFile(file, owner) {
183
- if (file.file.trim().length === 0) {
190
+ function assertKnownFileBackedNodeFields(file) {
191
+ const unknownField = Object.keys(file).find(function unknownFileBackedNodeField(field) {
192
+ return field !== 'file' && field !== 'testNode';
193
+ });
194
+ if (unknownField !== undefined) {
195
+ throw new TypeError(`Unknown test file field: ${unknownField}.`);
196
+ }
197
+ }
198
+ function ensureFileBackedNodeInput(file, owner) {
199
+ if (!isRecord(file)) {
200
+ throw new TypeError('Test file input must be an object.');
201
+ }
202
+ assertKnownFileBackedNodeFields(file);
203
+ if (typeof file.file !== 'string' || file.file.trim().length === 0) {
184
204
  throw new TypeError('Test file identity must not be empty.');
185
205
  }
186
- ensureMetadata(file.metadata);
187
206
  if (!isOwnedTestNode(file.testNode, owner)) {
188
207
  throw new TypeError('Test file must provide a TestNode created by the selected engine.');
189
208
  }
@@ -194,7 +213,7 @@ function countReachedNodes(reachedNodes) {
194
213
  export function createTestPlanFromTestFilesFactory(owner, createRoot) {
195
214
  return function createTestPlanFromTestFiles(options) {
196
215
  for (const file of options.files) {
197
- ensureTestPlanFile(file, owner);
216
+ ensureFileBackedNodeInput(file, owner);
198
217
  }
199
218
  const root = createRoot({
200
219
  children: options.files.map(function toTestNode(file) {