@lingxia/test 0.18.0 → 0.19.0

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 (126) hide show
  1. package/dist/clock.d.ts +30 -0
  2. package/dist/clock.d.ts.map +1 -0
  3. package/dist/clock.js +99 -0
  4. package/dist/clock.js.map +1 -0
  5. package/dist/coverage.d.ts +25 -0
  6. package/dist/coverage.d.ts.map +1 -0
  7. package/dist/coverage.js +92 -0
  8. package/dist/coverage.js.map +1 -0
  9. package/dist/deadline.d.ts +82 -0
  10. package/dist/deadline.d.ts.map +1 -0
  11. package/dist/deadline.js +184 -0
  12. package/dist/deadline.js.map +1 -0
  13. package/dist/dialogs.d.ts +28 -0
  14. package/dist/dialogs.d.ts.map +1 -0
  15. package/dist/dialogs.js +74 -0
  16. package/dist/dialogs.js.map +1 -0
  17. package/dist/equal.d.ts +28 -0
  18. package/dist/equal.d.ts.map +1 -0
  19. package/dist/equal.js +149 -0
  20. package/dist/equal.js.map +1 -0
  21. package/dist/errors.d.ts +8 -0
  22. package/dist/errors.d.ts.map +1 -0
  23. package/dist/errors.js +37 -0
  24. package/dist/errors.js.map +1 -0
  25. package/dist/expect.d.ts +35 -7
  26. package/dist/expect.d.ts.map +1 -1
  27. package/dist/expect.js +216 -68
  28. package/dist/expect.js.map +1 -1
  29. package/dist/fixture.d.ts +201 -23
  30. package/dist/fixture.d.ts.map +1 -1
  31. package/dist/fixture.js +1127 -157
  32. package/dist/fixture.js.map +1 -1
  33. package/dist/format.d.ts +2 -0
  34. package/dist/format.d.ts.map +1 -1
  35. package/dist/format.js +78 -0
  36. package/dist/format.js.map +1 -1
  37. package/dist/host-types.d.ts +65 -0
  38. package/dist/host-types.d.ts.map +1 -0
  39. package/dist/host-types.js +2 -0
  40. package/dist/host-types.js.map +1 -0
  41. package/dist/host.d.ts +20 -0
  42. package/dist/host.d.ts.map +1 -1
  43. package/dist/host.js +33 -1
  44. package/dist/host.js.map +1 -1
  45. package/dist/ids.d.ts +14 -0
  46. package/dist/ids.d.ts.map +1 -1
  47. package/dist/ids.js +37 -2
  48. package/dist/ids.js.map +1 -1
  49. package/dist/index.d.ts +5 -7
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +3 -5
  52. package/dist/index.js.map +1 -1
  53. package/dist/json-result.d.ts +3 -0
  54. package/dist/json-result.d.ts.map +1 -0
  55. package/dist/json-result.js +62 -0
  56. package/dist/json-result.js.map +1 -0
  57. package/dist/junit.d.ts +1 -1
  58. package/dist/junit.d.ts.map +1 -1
  59. package/dist/junit.js +32 -4
  60. package/dist/junit.js.map +1 -1
  61. package/dist/locator.d.ts +87 -9
  62. package/dist/locator.d.ts.map +1 -1
  63. package/dist/locator.js +413 -86
  64. package/dist/locator.js.map +1 -1
  65. package/dist/mock.d.ts +43 -0
  66. package/dist/mock.d.ts.map +1 -0
  67. package/dist/mock.js +162 -0
  68. package/dist/mock.js.map +1 -0
  69. package/dist/network.d.ts +68 -0
  70. package/dist/network.d.ts.map +1 -0
  71. package/dist/network.js +287 -0
  72. package/dist/network.js.map +1 -0
  73. package/dist/openapi.d.ts +127 -0
  74. package/dist/openapi.d.ts.map +1 -0
  75. package/dist/openapi.js +414 -0
  76. package/dist/openapi.js.map +1 -0
  77. package/dist/pending.d.ts +84 -0
  78. package/dist/pending.d.ts.map +1 -0
  79. package/dist/pending.js +311 -0
  80. package/dist/pending.js.map +1 -0
  81. package/dist/redact.d.ts +41 -0
  82. package/dist/redact.d.ts.map +1 -0
  83. package/dist/redact.js +168 -0
  84. package/dist/redact.js.map +1 -0
  85. package/dist/remote.d.ts +32 -0
  86. package/dist/remote.d.ts.map +1 -0
  87. package/dist/remote.js +117 -0
  88. package/dist/remote.js.map +1 -0
  89. package/dist/report-extras.d.ts +16 -0
  90. package/dist/report-extras.d.ts.map +1 -0
  91. package/dist/report-extras.js +125 -0
  92. package/dist/report-extras.js.map +1 -0
  93. package/dist/report-types.d.ts +428 -0
  94. package/dist/report-types.d.ts.map +1 -0
  95. package/dist/report-types.js +6 -0
  96. package/dist/report-types.js.map +1 -0
  97. package/dist/report.d.ts +15 -1
  98. package/dist/report.d.ts.map +1 -1
  99. package/dist/report.js +195 -19
  100. package/dist/report.js.map +1 -1
  101. package/dist/runner.d.ts +13 -0
  102. package/dist/runner.d.ts.map +1 -0
  103. package/dist/runner.js +11 -0
  104. package/dist/runner.js.map +1 -0
  105. package/dist/runtime.d.ts +54 -4
  106. package/dist/runtime.d.ts.map +1 -1
  107. package/dist/runtime.js +1375 -97
  108. package/dist/runtime.js.map +1 -1
  109. package/dist/schema.d.ts +29 -0
  110. package/dist/schema.d.ts.map +1 -0
  111. package/dist/schema.js +463 -0
  112. package/dist/schema.js.map +1 -0
  113. package/dist/spec-api.d.ts +7 -2
  114. package/dist/spec-api.d.ts.map +1 -1
  115. package/dist/tags.d.ts +26 -0
  116. package/dist/tags.d.ts.map +1 -0
  117. package/dist/tags.js +78 -0
  118. package/dist/tags.js.map +1 -0
  119. package/dist/types.d.ts +852 -165
  120. package/dist/types.d.ts.map +1 -1
  121. package/dist/version.d.ts +1 -1
  122. package/dist/version.js +1 -1
  123. package/package.json +18 -5
  124. package/schemas/lxdev.schema.json +50 -0
  125. package/schemas/mock-config.schema.json +21 -0
  126. package/schemas/scenario.schema.json +180 -0
package/dist/expect.js CHANGED
@@ -1,8 +1,24 @@
1
- import { formatValue } from "./format.js";
2
- let assertionSink;
1
+ import { isEqual, objectContaining } from "./equal.js";
2
+ import { firstDifference, formatValue } from "./format.js";
3
+ import { activeOpenApi } from "./openapi.js";
4
+ import { formatIssues } from "./schema.js";
5
+ import { displayLocation, parseFrames, resolveOrigin } from "./ids.js";
6
+ let activeScope;
3
7
  let assertionSilence = 0;
4
- export function setAssertionSink(sink) {
5
- assertionSink = sink;
8
+ let assertionMeta;
9
+ /** Where an assertion goes that ran while no spec was running. */
10
+ let straySink;
11
+ /** The spec `expect` reports to; `undefined` between specs. */
12
+ export function setExpectScope(scope) {
13
+ activeScope = scope;
14
+ }
15
+ /**
16
+ * During a run, assertions made while no spec runs — a continuation of a
17
+ * spec the run already finished — are handed here instead of to whichever
18
+ * spec runs next.
19
+ */
20
+ export function setStrayAssertionSink(sink) {
21
+ straySink = sink;
6
22
  }
7
23
  export function pushAssertionSilence() {
8
24
  assertionSilence += 1;
@@ -10,77 +26,53 @@ export function pushAssertionSilence() {
10
26
  export function popAssertionSilence() {
11
27
  assertionSilence = Math.max(0, assertionSilence - 1);
12
28
  }
13
- export function logAssertion(entry) {
14
- if (assertionSilence > 0 || !assertionSink)
29
+ function recordAssertion(entry) {
30
+ if (assertionSilence > 0)
15
31
  return;
16
- assertionSink(entry);
32
+ const record = { ...entry, ...assertionMeta };
33
+ if (activeScope)
34
+ activeScope.note(record);
35
+ else
36
+ straySink?.(record);
37
+ }
38
+ /** Bind one synchronous value matcher to the authored expect call. */
39
+ function annotateMatchers(matchers, meta) {
40
+ return new Proxy(matchers, {
41
+ get(target, key, receiver) {
42
+ const value = Reflect.get(target, key, receiver);
43
+ if (key === "not" && value && typeof value === "object")
44
+ return annotateMatchers(value, meta);
45
+ if (key === "then" || typeof value !== "function")
46
+ return value;
47
+ return (...args) => {
48
+ const previous = assertionMeta;
49
+ assertionMeta = meta;
50
+ try {
51
+ return Reflect.apply(value, target, args);
52
+ }
53
+ catch (error) {
54
+ if (meta.message && error instanceof AssertionError)
55
+ error.message = `${meta.message}\n${error.message}`;
56
+ throw error;
57
+ }
58
+ finally {
59
+ assertionMeta = previous;
60
+ }
61
+ };
62
+ },
63
+ });
17
64
  }
18
65
  export class AssertionError extends Error {
19
- constructor(matcher, actual, expected, message) {
66
+ constructor(matcher, actual, expected, message, code) {
20
67
  super(message);
21
68
  this.name = "AssertionError";
22
69
  this.matcher = matcher;
23
70
  this.actual = actual;
24
71
  this.expected = expected;
72
+ if (code)
73
+ this.code = code;
25
74
  }
26
75
  }
27
- function isEqual(a, b, seen = new WeakMap()) {
28
- if (Object.is(a, b))
29
- return true;
30
- if (typeof a !== typeof b)
31
- return false;
32
- if (a === null || b === null)
33
- return a === b;
34
- if (typeof a !== "object" || typeof b !== "object")
35
- return false;
36
- if (a instanceof Date || b instanceof Date) {
37
- return a instanceof Date && b instanceof Date && a.getTime() === b.getTime();
38
- }
39
- if (a instanceof RegExp || b instanceof RegExp) {
40
- return a instanceof RegExp && b instanceof RegExp && String(a) === String(b);
41
- }
42
- if (a instanceof Map || b instanceof Map) {
43
- if (!(a instanceof Map) || !(b instanceof Map) || a.size !== b.size)
44
- return false;
45
- for (const [key, value] of a) {
46
- if (!b.has(key) || !isEqual(value, b.get(key), seen))
47
- return false;
48
- }
49
- return true;
50
- }
51
- if (a instanceof Set || b instanceof Set) {
52
- if (!(a instanceof Set) || !(b instanceof Set) || a.size !== b.size)
53
- return false;
54
- for (const value of a) {
55
- let found = false;
56
- for (const other of b) {
57
- if (isEqual(value, other, seen)) {
58
- found = true;
59
- break;
60
- }
61
- }
62
- if (!found)
63
- return false;
64
- }
65
- return true;
66
- }
67
- if (Array.isArray(a) !== Array.isArray(b))
68
- return false;
69
- if (seen.get(a) === b)
70
- return true;
71
- seen.set(a, b);
72
- if (Array.isArray(a) && Array.isArray(b)) {
73
- if (a.length !== b.length)
74
- return false;
75
- return a.every((item, index) => isEqual(item, b[index], seen));
76
- }
77
- const aKeys = Object.keys(a);
78
- const bKeys = Object.keys(b);
79
- if (aKeys.length !== bKeys.length)
80
- return false;
81
- return aKeys.every((key) => Object.prototype.hasOwnProperty.call(b, key) &&
82
- isEqual(a[key], b[key], seen));
83
- }
84
76
  function contains(actual, expected) {
85
77
  if (typeof actual === "string")
86
78
  return actual.includes(String(expected));
@@ -98,16 +90,20 @@ function message(matcher, actual, expected, inverted, extra) {
98
90
  extra ?? "",
99
91
  `Expected: ${inverted ? "not " : ""}${formatValue(expected)}`,
100
92
  `Received: ${formatValue(actual)}`,
93
+ !inverted && ["toBe", "toEqual"].includes(matcher)
94
+ ? firstDifference(expected, actual) ?? "" : "",
101
95
  ].filter((line) => line.length > 0);
102
96
  return lines.join("\n");
103
97
  }
104
98
  function settle(matcher, actual, expected, inverted, pass, extra) {
105
99
  const ok = pass !== inverted;
106
- logAssertion({
100
+ recordAssertion({
107
101
  matcher: inverted ? `not.${matcher}` : matcher,
108
102
  expected: inverted ? `not ${formatValue(expected)}` : formatValue(expected),
109
103
  actual: formatValue(actual),
110
104
  passed: ok,
105
+ difference: !ok && !inverted && ["toBe", "toEqual"].includes(matcher)
106
+ ? firstDifference(expected, actual) : undefined,
111
107
  });
112
108
  if (!ok)
113
109
  fail(matcher, actual, expected, inverted, extra);
@@ -125,7 +121,7 @@ function createMatchers(actual, inverted) {
125
121
  // missed, so it fails even under `.not` -- otherwise a misspelled field
126
122
  // reads as "correctly not greater" and the spec passes on nothing.
127
123
  // Logged under the matcher the spec actually wrote, `.not` included.
128
- logAssertion({
124
+ recordAssertion({
129
125
  matcher: inverted ? `not.${matcher}` : matcher,
130
126
  expected: formatValue(expected),
131
127
  actual: formatValue(actual),
@@ -148,6 +144,14 @@ function createMatchers(actual, inverted) {
148
144
  toContain(expected) {
149
145
  settle("toContain", actual, expected, inverted, contains(actual, expected));
150
146
  },
147
+ toContainEqual(expected) {
148
+ if (!Array.isArray(actual)) {
149
+ // A non-array is a broken assertion: it fails under `.not` too.
150
+ recordAssertion({ matcher: inverted ? "not.toContainEqual" : "toContainEqual", expected: formatValue(expected), actual: formatValue(actual), passed: false });
151
+ fail("toContainEqual", actual, expected, inverted, "received value must be an array");
152
+ }
153
+ settle("toContainEqual", actual, expected, inverted, actual.some((item) => isEqual(item, expected)));
154
+ },
151
155
  toMatch(expected) {
152
156
  settle("toMatch", actual, expected, inverted, matches(actual, expected));
153
157
  },
@@ -167,6 +171,14 @@ function createMatchers(actual, inverted) {
167
171
  const pass = actual instanceof expected;
168
172
  settle("toBeInstanceOf", actual, expected, inverted, pass);
169
173
  },
174
+ toHaveLength(expected) {
175
+ const length = actual?.length;
176
+ if (typeof length !== "number") {
177
+ recordAssertion({ matcher: inverted ? "not.toHaveLength" : "toHaveLength", expected: formatValue(expected), actual: formatValue(actual), passed: false });
178
+ fail("toHaveLength", actual, expected, inverted, "received value must have a numeric length");
179
+ }
180
+ settle("toHaveLength", length, expected, inverted, length === expected);
181
+ },
170
182
  toBeGreaterThan(expected) {
171
183
  compare("toBeGreaterThan", expected, (a, b) => a > b);
172
184
  },
@@ -179,6 +191,36 @@ function createMatchers(actual, inverted) {
179
191
  toBeLessThanOrEqual(expected) {
180
192
  compare("toBeLessThanOrEqual", expected, (a, b) => a <= b);
181
193
  },
194
+ toMatchSchema(schema) {
195
+ const index = activeOpenApi();
196
+ let result;
197
+ let broken;
198
+ if (!index) {
199
+ broken = "toMatchSchema needs an OpenAPI document: run `lxdev test --openapi <spec.yaml|json>`";
200
+ }
201
+ else {
202
+ try {
203
+ result = index.validate(actual, schema);
204
+ }
205
+ catch (error) {
206
+ broken = error instanceof Error ? error.message : String(error);
207
+ }
208
+ }
209
+ if (!result) {
210
+ // A schema that cannot be found is a broken assertion, not a
211
+ // mismatch: it fails under `.not` too.
212
+ recordAssertion({
213
+ matcher: inverted ? "not.toMatchSchema" : "toMatchSchema",
214
+ expected: formatValue(schema),
215
+ actual: formatValue(actual),
216
+ passed: false,
217
+ });
218
+ throw new AssertionError(inverted ? "not.toMatchSchema" : "toMatchSchema", actual, schema, broken ?? "toMatchSchema failed");
219
+ }
220
+ const label = `${result.pointer} in ${result.document}`;
221
+ const detail = result.issues.length > 0 ? `Schema mismatches:\n${formatIssues(result.issues)}` : undefined;
222
+ settle("toMatchSchema", actual, label, inverted, result.issues.length === 0, detail);
223
+ },
182
224
  toThrow(expected) {
183
225
  if (typeof actual !== "function") {
184
226
  settle("toThrow", actual, expected, inverted, false, "received value must be a function");
@@ -208,9 +250,109 @@ function createMatchers(actual, inverted) {
208
250
  settle("toThrow", thrown, expected, inverted, pass);
209
251
  },
210
252
  };
253
+ // `then` is added where `expect` hands the matchers out (`refuseAwait`).
211
254
  return self;
212
255
  }
213
- export function expect(actual) {
256
+ /** `LOCATOR_BRAND` in `locator.ts`; read by key to keep this module free of it. */
257
+ const LOCATOR_BRAND = Symbol.for("lingxia.test.locator");
258
+ function isLocator(value) {
259
+ return typeof value === "object" && value !== null && value[LOCATOR_BRAND] === true;
260
+ }
261
+ function isThenable(value) {
262
+ return (typeof value === "object" || typeof value === "function") && value !== null &&
263
+ typeof value.then === "function";
264
+ }
265
+ function truncateTarget(value) {
266
+ const text = typeof value === "function" ? value.name || "function" : formatValue(value);
267
+ return text.length > 120 ? `${text.slice(0, 119)}…` : text;
268
+ }
269
+ function runningScope(api) {
270
+ if (!activeScope)
271
+ throw new Error(`${api} retries inside a spec's budget; call it from a running spec`);
272
+ return activeScope;
273
+ }
274
+ /**
275
+ * `expect(fn)`: `toThrow` calls it once. Any other matcher would compare the
276
+ * function itself, which is never what a spec means: a read to retry is
277
+ * `expect.poll(read)`.
278
+ */
279
+ function functionMatchers(fn, inverted) {
280
+ const matchers = createMatchers(fn, inverted);
281
+ const out = {};
282
+ for (const key of Object.keys(matchers)) {
283
+ if (key === "not")
284
+ continue;
285
+ out[key] = key === "toThrow"
286
+ ? matchers.toThrow
287
+ : () => {
288
+ throw new TypeError(`expect(fn).${key}: a function is only called by toThrow; to retry a read until it passes, use expect.poll(read)`);
289
+ };
290
+ }
291
+ Object.defineProperty(out, "not", { get: () => functionMatchers(fn, !inverted), enumerable: true, configurable: true });
292
+ return out;
293
+ }
294
+ /**
295
+ * Awaiting the matchers object itself checks nothing. Make it reject, naming
296
+ * where `expect` was called, instead of passing silently.
297
+ */
298
+ function refuseAwait(matchers, api, example, origin) {
299
+ const not = Object.getOwnPropertyDescriptor(matchers, "not");
300
+ if (not?.get) {
301
+ const get = not.get;
302
+ Object.defineProperty(matchers, "not", {
303
+ get: () => refuseAwait(get.call(matchers), api, example, origin),
304
+ enumerable: not.enumerable,
305
+ configurable: true,
306
+ });
307
+ }
308
+ Object.defineProperty(matchers, "then", {
309
+ value: (_resolve, reject) => {
310
+ const at = resolveOrigin(parseFrames(origin.stack));
311
+ const error = new TypeError(`${api} checks nothing until a matcher is called: ${example}\nat ${displayLocation(at.file, at.line, at.column)}`);
312
+ if (typeof reject === "function")
313
+ reject(error);
314
+ else
315
+ throw error;
316
+ },
317
+ enumerable: false,
318
+ configurable: true,
319
+ });
320
+ return matchers;
321
+ }
322
+ /**
323
+ * The one assertion entry point: a locator retries its matcher until the
324
+ * element passes, any other value is checked once, and `expect.poll(read)`
325
+ * calls `read` until the matcher passes.
326
+ */
327
+ export const expect = Object.assign((subject, description) => {
328
+ const origin = new Error();
329
+ if (description !== undefined && (typeof description !== "string" || description.trim() === "")) {
330
+ throw new TypeError("expect(subject, message) needs a non-empty message");
331
+ }
332
+ if (isLocator(subject)) {
333
+ return refuseAwait(runningScope("expect(locator)").locator(subject, description), "expect(locator)", "await expect(locator).toBeVisible()", origin);
334
+ }
335
+ if (isThenable(subject)) {
336
+ throw new TypeError("expect(promise): await the value first, or retry a read with expect.poll(() => promise)");
337
+ }
338
+ const at = resolveOrigin(parseFrames(origin.stack));
339
+ const meta = { target: truncateTarget(subject), message: description,
340
+ location: displayLocation(at.file, at.line, at.column) };
341
+ if (typeof subject === "function") {
342
+ return annotateMatchers(refuseAwait(functionMatchers(subject, false), "expect(fn)", "expect(fn).toThrow()", origin), meta);
343
+ }
344
+ return annotateMatchers(refuseAwait(createMatchers(subject, false), "expect(value)", "expect(value).toBe(expected)", origin), meta);
345
+ }, {
346
+ objectContaining,
347
+ poll: (read, options) => {
348
+ const origin = new Error();
349
+ if (typeof read !== "function")
350
+ throw new TypeError("expect.poll(read) takes a function to call until the matcher passes");
351
+ return refuseAwait(runningScope("expect.poll(read)").poll(read, options), "expect.poll(read)", "await expect.poll(read).toBe(expected)", origin);
352
+ },
353
+ });
354
+ /** Check `actual` once; the fixture's own checks use it. */
355
+ export function check(actual) {
214
356
  return createMatchers(actual, false);
215
357
  }
216
358
  export function applyMatcher(matcher, actual, expected, inverted) {
@@ -225,6 +367,9 @@ export function applyMatcher(matcher, actual, expected, inverted) {
225
367
  case "toContain":
226
368
  assertion.toContain(expected);
227
369
  return;
370
+ case "toContainEqual":
371
+ assertion.toContainEqual(expected);
372
+ return;
228
373
  case "toMatch":
229
374
  assertion.toMatch(expected);
230
375
  return;
@@ -243,6 +388,9 @@ export function applyMatcher(matcher, actual, expected, inverted) {
243
388
  case "toBeInstanceOf":
244
389
  assertion.toBeInstanceOf(expected);
245
390
  return;
391
+ case "toHaveLength":
392
+ assertion.toHaveLength(expected);
393
+ return;
246
394
  case "toBeGreaterThan":
247
395
  assertion.toBeGreaterThan(expected);
248
396
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"expect.js","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expect.js","sourceRoot":"","sources":["../src/expect.ts"],"names":[],"mappings":"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"}