@c9up/helix 0.1.7 → 0.1.9

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 (124) hide show
  1. package/README.md +282 -11
  2. package/bin/helix.js +329 -13
  3. package/dist/cli/failed-cache.d.ts +27 -0
  4. package/dist/cli/failed-cache.d.ts.map +1 -0
  5. package/dist/cli/failed-cache.js +64 -0
  6. package/dist/cli/failed-cache.js.map +1 -0
  7. package/dist/cli/glob.d.ts +36 -0
  8. package/dist/cli/glob.d.ts.map +1 -0
  9. package/dist/cli/glob.js +185 -0
  10. package/dist/cli/glob.js.map +1 -0
  11. package/dist/cli/native.d.ts +4 -0
  12. package/dist/cli/native.d.ts.map +1 -1
  13. package/dist/cli/native.js.map +1 -1
  14. package/dist/cli/pool.d.ts +11 -0
  15. package/dist/cli/pool.d.ts.map +1 -1
  16. package/dist/cli/pool.js +12 -0
  17. package/dist/cli/pool.js.map +1 -1
  18. package/dist/cli/reporter.d.ts +11 -0
  19. package/dist/cli/reporter.d.ts.map +1 -1
  20. package/dist/cli/reporter.js +53 -0
  21. package/dist/cli/reporter.js.map +1 -1
  22. package/dist/cli/run.d.ts +41 -0
  23. package/dist/cli/run.d.ts.map +1 -1
  24. package/dist/cli/run.js +181 -21
  25. package/dist/cli/run.js.map +1 -1
  26. package/dist/cli/runner.d.ts +19 -0
  27. package/dist/cli/runner.d.ts.map +1 -0
  28. package/dist/cli/runner.js +15 -0
  29. package/dist/cli/runner.js.map +1 -0
  30. package/dist/cli/suites.d.ts +102 -0
  31. package/dist/cli/suites.d.ts.map +1 -0
  32. package/dist/cli/suites.js +226 -0
  33. package/dist/cli/suites.js.map +1 -0
  34. package/dist/index.d.ts +10 -9
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +9 -8
  37. package/dist/index.js.map +1 -1
  38. package/dist/japa/core.d.ts +106 -0
  39. package/dist/japa/core.d.ts.map +1 -0
  40. package/dist/japa/core.js +128 -0
  41. package/dist/japa/core.js.map +1 -0
  42. package/dist/runtime/assert.d.ts +174 -0
  43. package/dist/runtime/assert.d.ts.map +1 -0
  44. package/dist/runtime/assert.js +591 -0
  45. package/dist/runtime/assert.js.map +1 -0
  46. package/dist/runtime/asymmetric.d.ts +34 -0
  47. package/dist/runtime/asymmetric.d.ts.map +1 -0
  48. package/dist/runtime/asymmetric.js +78 -0
  49. package/dist/runtime/asymmetric.js.map +1 -0
  50. package/dist/runtime/bootstrap.d.ts +47 -0
  51. package/dist/runtime/bootstrap.d.ts.map +1 -0
  52. package/dist/runtime/bootstrap.js +166 -0
  53. package/dist/runtime/bootstrap.js.map +1 -0
  54. package/dist/runtime/cli-args.d.ts +77 -0
  55. package/dist/runtime/cli-args.d.ts.map +1 -0
  56. package/dist/runtime/cli-args.js +85 -0
  57. package/dist/runtime/cli-args.js.map +1 -0
  58. package/dist/runtime/configure.d.ts +214 -0
  59. package/dist/runtime/configure.d.ts.map +1 -0
  60. package/dist/runtime/configure.js +164 -0
  61. package/dist/runtime/configure.js.map +1 -0
  62. package/dist/runtime/context.d.ts +84 -0
  63. package/dist/runtime/context.d.ts.map +1 -0
  64. package/dist/runtime/context.js +146 -0
  65. package/dist/runtime/context.js.map +1 -0
  66. package/dist/runtime/emitter.d.ts +141 -0
  67. package/dist/runtime/emitter.d.ts.map +1 -0
  68. package/dist/runtime/emitter.js +79 -0
  69. package/dist/runtime/emitter.js.map +1 -0
  70. package/dist/runtime/equals.d.ts.map +1 -1
  71. package/dist/runtime/equals.js +21 -0
  72. package/dist/runtime/equals.js.map +1 -1
  73. package/dist/runtime/expect.d.ts +22 -1
  74. package/dist/runtime/expect.d.ts.map +1 -1
  75. package/dist/runtime/expect.js +15 -1
  76. package/dist/runtime/expect.js.map +1 -1
  77. package/dist/runtime/global-hooks.d.ts +31 -0
  78. package/dist/runtime/global-hooks.d.ts.map +1 -0
  79. package/dist/runtime/global-hooks.js +126 -0
  80. package/dist/runtime/global-hooks.js.map +1 -0
  81. package/dist/runtime/index.d.ts +16 -3
  82. package/dist/runtime/index.d.ts.map +1 -1
  83. package/dist/runtime/index.js +7 -1
  84. package/dist/runtime/index.js.map +1 -1
  85. package/dist/runtime/matchers.d.ts +5 -0
  86. package/dist/runtime/matchers.d.ts.map +1 -1
  87. package/dist/runtime/matchers.js +117 -0
  88. package/dist/runtime/matchers.js.map +1 -1
  89. package/dist/runtime/run.d.ts +63 -1
  90. package/dist/runtime/run.d.ts.map +1 -1
  91. package/dist/runtime/run.js +696 -79
  92. package/dist/runtime/run.js.map +1 -1
  93. package/dist/runtime/runner.d.ts +97 -0
  94. package/dist/runtime/runner.d.ts.map +1 -0
  95. package/dist/runtime/runner.js +160 -0
  96. package/dist/runtime/runner.js.map +1 -0
  97. package/dist/runtime/suite-config.d.ts +23 -0
  98. package/dist/runtime/suite-config.d.ts.map +1 -0
  99. package/dist/runtime/suite-config.js +52 -0
  100. package/dist/runtime/suite-config.js.map +1 -0
  101. package/dist/runtime/suite-taps.d.ts +122 -0
  102. package/dist/runtime/suite-taps.d.ts.map +1 -0
  103. package/dist/runtime/suite-taps.js +218 -0
  104. package/dist/runtime/suite-taps.js.map +1 -0
  105. package/dist/runtime/suite.d.ts +316 -10
  106. package/dist/runtime/suite.d.ts.map +1 -1
  107. package/dist/runtime/suite.js +307 -8
  108. package/dist/runtime/suite.js.map +1 -1
  109. package/dist/runtime/test-context.d.ts +88 -1
  110. package/dist/runtime/test-context.d.ts.map +1 -1
  111. package/dist/runtime/test-context.js +170 -2
  112. package/dist/runtime/test-context.js.map +1 -1
  113. package/dist/runtime/vi/fake-timers.d.ts.map +1 -1
  114. package/dist/runtime/vi/fake-timers.js +3 -4
  115. package/dist/runtime/vi/fake-timers.js.map +1 -1
  116. package/dist/runtime/worker.d.ts.map +1 -1
  117. package/dist/runtime/worker.js +87 -5
  118. package/dist/runtime/worker.js.map +1 -1
  119. package/index.darwin-arm64.node +0 -0
  120. package/index.darwin-x64.node +0 -0
  121. package/index.linux-arm64-gnu.node +0 -0
  122. package/index.linux-x64-gnu.node +0 -0
  123. package/index.win32-x64-msvc.node +0 -0
  124. package/package.json +10 -1
@@ -7,6 +7,7 @@
7
7
  * invocations never share state.
8
8
  */
9
9
  import { AsyncLocalStorage } from "node:async_hooks";
10
+ import { getFrameTest } from "./test-context.js";
10
11
  function makeSuite(name, mode, parent) {
11
12
  return {
12
13
  kind: "suite",
@@ -65,15 +66,177 @@ function current() {
65
66
  throw new Error("internal: suite stack empty");
66
67
  return top;
67
68
  }
68
- function registerTest(name, mode, fn) {
69
+ function registerTest(name, mode, fn, options) {
69
70
  const parent = current();
70
- parent.children.push({
71
+ const node = {
71
72
  kind: "test",
72
73
  name,
73
74
  fn,
74
75
  mode,
75
76
  parent,
76
- });
77
+ retries: options?.retry,
78
+ timeoutMs: options?.timeout,
79
+ tags: options?.tags,
80
+ failing: options?.fails,
81
+ };
82
+ parent.children.push(node);
83
+ return node;
84
+ }
85
+ /** Consumer-registered handle macros (Japa `Test.macro`) applied to every handle. */
86
+ const handleMacros = new Map();
87
+ /** Wrap a registered node in the chainable Japa-style handle. */
88
+ function makeHandle(node) {
89
+ const handle = {
90
+ retry(n) {
91
+ node.retries = n;
92
+ return handle;
93
+ },
94
+ timeout(ms) {
95
+ node.timeoutMs = ms;
96
+ return handle;
97
+ },
98
+ disableTimeout() {
99
+ node.timeoutMs = 0;
100
+ return handle;
101
+ },
102
+ tags(tags, strategy = "replace") {
103
+ const incoming = Array.isArray(tags) ? tags : [tags];
104
+ const existing = node.tags ?? [];
105
+ node.tags =
106
+ strategy === "append"
107
+ ? [...existing, ...incoming]
108
+ : strategy === "prepend"
109
+ ? [...incoming, ...existing]
110
+ : [...incoming];
111
+ return handle;
112
+ },
113
+ fails(reason) {
114
+ node.failing = true;
115
+ if (reason !== undefined)
116
+ node.reason = reason;
117
+ return handle;
118
+ },
119
+ setup(fn) {
120
+ if (!node.setups)
121
+ node.setups = [];
122
+ node.setups.push(fn);
123
+ return handle;
124
+ },
125
+ teardown(fn) {
126
+ if (!node.teardowns)
127
+ node.teardowns = [];
128
+ node.teardowns.push(fn);
129
+ return handle;
130
+ },
131
+ pin() {
132
+ node.pinned = true;
133
+ // A pinned test runs like `.only` — the runner already restricts the
134
+ // tree to `only` nodes when any exist.
135
+ if (node.mode === "run")
136
+ node.mode = "only";
137
+ return handle;
138
+ },
139
+ skip(condition = true, reason) {
140
+ if (typeof condition === "function") {
141
+ // Deferred: a function condition (possibly async) is evaluated at RUN
142
+ // time (Japa parity), not eagerly at collection.
143
+ node.skipCondition = condition;
144
+ if (reason !== undefined)
145
+ node.reason = reason;
146
+ }
147
+ else if (condition) {
148
+ node.mode = "skip";
149
+ if (reason !== undefined)
150
+ node.reason = reason;
151
+ }
152
+ return handle;
153
+ },
154
+ waitForDone() {
155
+ node.waitForDone = true;
156
+ return handle;
157
+ },
158
+ with(rows) {
159
+ // Covariant: DatasetSource<Row> assigns to DatasetSource<unknown> (no cast).
160
+ node.datasetFn = rows;
161
+ // If `test(name, fn)` already supplied a body, it IS the dataset body —
162
+ // re-home it so the executor calls it with `(ctx, row)`. `datasetBody`'s
163
+ // bivariant method signature accepts `node.fn` directly (no cast). A body
164
+ // added later via `.run()` overrides this.
165
+ if (node.datasetBody === undefined && node.fn) {
166
+ node.datasetBody = node.fn;
167
+ }
168
+ // A `test('title')` with no body was registered as `todo`; attaching a
169
+ // dataset makes it a runnable, per-row test again.
170
+ if (node.mode === "todo")
171
+ node.mode = "run";
172
+ node.fn = undefined;
173
+ const datasetHandle = {
174
+ run(fn) {
175
+ // Bivariant method param → the Row-typed body assigns without a cast.
176
+ node.datasetBody = fn;
177
+ if (node.mode === "todo")
178
+ node.mode = "run";
179
+ node.fn = undefined;
180
+ return handle;
181
+ },
182
+ };
183
+ return datasetHandle;
184
+ },
185
+ };
186
+ // Apply consumer-registered macros (Japa `Test.macro`) — `this` is the handle
187
+ // so the macro can chain.
188
+ for (const [name, fn] of handleMacros) {
189
+ Object.defineProperty(handle, name, {
190
+ value: (...args) => fn.apply(handle, args),
191
+ enumerable: false,
192
+ configurable: true,
193
+ writable: true,
194
+ });
195
+ }
196
+ return handle;
197
+ }
198
+ /**
199
+ * Build the {@link TapHandle} passed to `group.tap` — the chainable modifiers
200
+ * plus a mutable `options` view backed live by the node (Japa `test.options`).
201
+ */
202
+ function makeTapHandle(node) {
203
+ const handle = makeHandle(node);
204
+ const options = {
205
+ get title() {
206
+ return node.name;
207
+ },
208
+ set title(v) {
209
+ node.name = v;
210
+ },
211
+ get tags() {
212
+ return node.tags ?? [];
213
+ },
214
+ set tags(v) {
215
+ node.tags = v;
216
+ },
217
+ get timeout() {
218
+ return node.timeoutMs;
219
+ },
220
+ set timeout(v) {
221
+ node.timeoutMs = v;
222
+ },
223
+ get retries() {
224
+ return node.retries;
225
+ },
226
+ set retries(v) {
227
+ node.retries = v;
228
+ },
229
+ };
230
+ return Object.assign(handle, { options });
231
+ }
232
+ /** Normalise the optional 3rd arg: a bare number is a timeout (Vitest). */
233
+ function normaliseTestOptions(optionsOrTimeout) {
234
+ if (optionsOrTimeout === undefined)
235
+ return undefined;
236
+ if (typeof optionsOrTimeout === "number") {
237
+ return { timeout: optionsOrTimeout };
238
+ }
239
+ return optionsOrTimeout;
77
240
  }
78
241
  function registerSuite(name, mode, body) {
79
242
  const ctx = currentContext();
@@ -177,22 +340,158 @@ function interpolateEach(template, row, index) {
177
340
  // Append index so names don't collide.
178
341
  return `${template} [${index}]`;
179
342
  }
343
+ /**
344
+ * Interpolate a dataset test title (Japa parity). Tokens:
345
+ * - `{$i}` → the 1-based row index
346
+ * - `{$self}`→ the row itself (stringified) — for primitive/array rows
347
+ * - `{prop}` / `{a.b}` → a (dotted) property lookup on an object row
348
+ * Unknown `{tokens}` are left verbatim. A template with no token at all is
349
+ * returned unchanged and therefore repeats for every row — Japa's behaviour,
350
+ * and what the golden dataset spec pins down.
351
+ */
352
+ export function interpolateDatasetTitle(template, row, index) {
353
+ // No token: Japa returns the title unchanged and repeats it for every row.
354
+ // helix used to append ` (row N)` to keep them distinct; that made titles a
355
+ // reporter shows — and `--tests` never matched on, since filtering reads the
356
+ // declared name — differ from Japa's for the same spec.
357
+ if (!/\{[^}]+\}/.test(template))
358
+ return template;
359
+ return template.replace(/\{([^}]+)\}/g, (match, tokenRaw) => {
360
+ const token = tokenRaw.trim();
361
+ if (token === "$i")
362
+ return String(index + 1);
363
+ if (token === "$self") {
364
+ return typeof row === "object" && row !== null
365
+ ? safeStringify(row)
366
+ : String(row);
367
+ }
368
+ // Dotted property path against an object row.
369
+ let cursor = row;
370
+ for (const part of token.split(".")) {
371
+ if (cursor && typeof cursor === "object" && part in cursor) {
372
+ cursor = Reflect.get(cursor, part);
373
+ }
374
+ else {
375
+ return match; // leave unknown tokens verbatim
376
+ }
377
+ }
378
+ if (typeof cursor === "object" && cursor !== null)
379
+ return safeStringify(cursor);
380
+ return String(cursor);
381
+ });
382
+ }
180
383
  const describeFn = ((name, fn) => registerSuite(name, "run", fn));
181
384
  describeFn.skip = (name, fn) => registerSuite(name, "skip", fn);
182
385
  describeFn.only = (name, fn) => registerSuite(name, "only", fn);
183
386
  describeFn.todo = (name) => registerSuite(name, "todo", () => { });
184
- const testFn = ((name, fn) => registerTest(name, "run", fn));
185
- testFn.skip = (name, fn) => registerTest(name, "skip", fn);
186
- testFn.only = (name, fn) => registerTest(name, "only", fn);
187
- testFn.todo = (name) => registerTest(name, "todo", undefined);
387
+ const testFn = ((name, fn, options) => {
388
+ // No body → `todo` (Japa parity). A dataset body added later via
389
+ // `.with(...).run(fn)` promotes it back to a runnable test.
390
+ const mode = fn === undefined ? "todo" : "run";
391
+ return makeHandle(registerTest(name, mode, fn, normaliseTestOptions(options)));
392
+ });
393
+ testFn.skip = (name, fn) => {
394
+ registerTest(name, "skip", fn);
395
+ };
396
+ testFn.only = (name, fn, options) => makeHandle(registerTest(name, "only", fn, normaliseTestOptions(options)));
397
+ testFn.todo = (name) => {
398
+ registerTest(name, "todo", undefined);
399
+ };
188
400
  testFn.each = (rows) => {
189
401
  return (name, fn) => {
190
- rows.forEach((row, index) => {
402
+ // A function source (`test.each(() => rows)`) is resolved eagerly at
403
+ // collection time — per-row nodes need concrete rows to register.
404
+ const resolved = typeof rows === "function" ? rows() : rows;
405
+ resolved.forEach((row, index) => {
191
406
  const resolvedName = interpolateEach(name, row, index);
192
407
  registerTest(resolvedName, "run", () => fn(row));
193
408
  });
194
409
  };
195
410
  };
411
+ testFn.group = (name, fn) => {
412
+ // Japa forbids nested groups (grouping-tests docs) — a group inside a group
413
+ // is a structural error, not a supported nesting.
414
+ for (let ancestor = current(); ancestor !== undefined; ancestor = ancestor.parent) {
415
+ if (ancestor.isGroup) {
416
+ throw new Error(`test.group("${name}") cannot be nested inside group "${ancestor.name}" — Japa does not allow nested groups.`);
417
+ }
418
+ }
419
+ // A group IS a suite. Build ONE instance that is the body handle, the value
420
+ // returned, AND the `self` the group's hooks receive (Japa `self === group`).
421
+ // Its hook methods attach to THIS active suite via `addHook`.
422
+ let instance;
423
+ registerSuite(name, "run", () => {
424
+ const suite = current();
425
+ suite.isGroup = true;
426
+ // Dotted full name from the suite chain (matching the runtime `joinName`
427
+ // separator); computed HERE where `suite` is the group's own node.
428
+ const ancestorNames = [];
429
+ for (let a = suite; a !== undefined; a = a.parent) {
430
+ if (a.name)
431
+ ancestorNames.unshift(a.name);
432
+ }
433
+ const taps = [];
434
+ const group = {
435
+ title: name,
436
+ fullName: ancestorNames.join(" > "),
437
+ setup: (hookFn) => addHook("beforeAll", hookFn),
438
+ teardown: (hookFn) => addHook("afterAll", hookFn),
439
+ each: {
440
+ setup: (hookFn) => addHook("beforeEach", hookFn),
441
+ teardown: (hookFn) => addHook("afterEach", hookFn),
442
+ timeout: (ms) => {
443
+ suite.eachTimeout = ms;
444
+ },
445
+ disableTimeout: () => {
446
+ suite.eachTimeout = 0;
447
+ },
448
+ retry: (n) => {
449
+ suite.eachRetries = n;
450
+ },
451
+ },
452
+ tap: (tapFn) => taps.push(tapFn),
453
+ };
454
+ suite.groupInstance = group;
455
+ instance = group;
456
+ fn(group);
457
+ // Apply `tap` callbacks to every test registered directly in this group,
458
+ // regardless of whether tap() was called before or after them.
459
+ if (taps.length > 0) {
460
+ for (const child of suite.children) {
461
+ if (child.kind === "test") {
462
+ const handle = makeTapHandle(child);
463
+ for (const tapFn of taps)
464
+ tapFn(handle);
465
+ }
466
+ }
467
+ }
468
+ });
469
+ // `registerSuite` ran the body synchronously, so `instance` is set.
470
+ if (instance === undefined) {
471
+ throw new Error(`internal: group("${name}") instance was not built`);
472
+ }
473
+ return instance;
474
+ };
475
+ testFn.macro = (callback) => {
476
+ return (...args) => {
477
+ const t = getFrameTest();
478
+ if (t === undefined) {
479
+ throw new Error("test.macro(...): the returned function must be invoked inside a running test.");
480
+ }
481
+ return callback(t, ...args);
482
+ };
483
+ };
484
+ /**
485
+ * Class-level extension surface (Japa `Test.macro`). Registers a named method
486
+ * available on every test handle; `this` inside it is the handle, so it can
487
+ * chain (`Test.macro('slow', function () { this.tags(['@slow']); return this })`).
488
+ * Pair with a `declare module` augmentation for the types.
489
+ */
490
+ export const Test = {
491
+ macro(name, fn) {
492
+ handleMacros.set(name, fn);
493
+ },
494
+ };
196
495
  export const describe = describeFn;
197
496
  export const test = testFn;
198
497
  export const it = testFn;
@@ -1 +1 @@
1
- {"version":3,"file":"suite.js","sourceRoot":"","sources":["../../src/runtime/suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suite.js","sourceRoot":"","sources":["../../src/runtime/suite.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,22 @@
12
12
  * - reverse insertion order
13
13
  * - one cleanup throwing must not block the others
14
14
  */
15
- export type TestCleanup = () => void | Promise<void>;
15
+ import type { TestInstance } from "./suite.js";
16
+ /**
17
+ * A per-test teardown. Receives `(hasError, test)` (Japa parity): whether the
18
+ * test failed, and the running test's instance. Both params are optional so
19
+ * plain `() => …` cleanups stay valid.
20
+ */
21
+ export type TestCleanup = (hasError?: boolean, test?: TestInstance) => void | Promise<void>;
22
+ /** Per-test assertion bookkeeping (drives `expect.assertions`/`hasAssertions`). */
23
+ export interface AssertionState {
24
+ /** Number of `expect(...)` matcher invocations observed this test. */
25
+ count: number;
26
+ /** Exact count required by `expect.assertions(n)`, if set. */
27
+ expected: number | undefined;
28
+ /** Whether `expect.hasAssertions()` demanded at least one assertion. */
29
+ hasAssertions: boolean;
30
+ }
16
31
  export declare function withTestContext<T>(body: () => Promise<T>): Promise<T>;
17
32
  /**
18
33
  * Register a cleanup function that runs at the end of the current
@@ -22,4 +37,76 @@ export declare function withTestContext<T>(body: () => Promise<T>): Promise<T>;
22
37
  */
23
38
  export declare function registerTestCleanup(cleanup: TestCleanup): boolean;
24
39
  export declare function inTestContext(): boolean;
40
+ /** Attach the running test's instance to the active frame (for `ctx.test` + cleanups). */
41
+ export declare function setFrameTest(test: TestInstance): void;
42
+ /**
43
+ * Read the running test's instance from the active frame — the `t` handed to a
44
+ * Japa resource macro (`test.macro((t, …) => …)`). Undefined outside a test.
45
+ */
46
+ export declare function getFrameTest(): TestInstance | undefined;
47
+ /** The running test, or `undefined` outside one (Japa `getActiveTest`). */
48
+ export declare function getActiveTest(): TestInstance | undefined;
49
+ /**
50
+ * The running test, or a thrown error outside one — Japa's
51
+ * `getActiveTestOrFail`, the guard a plugin uses before touching test state.
52
+ */
53
+ export declare function getActiveTestOrFail(): TestInstance;
54
+ /** Record whether the test errored — read by the cleanup/outcome drains. */
55
+ export declare function setFrameOutcome(hadError: boolean): void;
56
+ /**
57
+ * Register a callback to run once the current test finishes, regardless of
58
+ * pass/fail. Mirrors Vitest's `onTestFinished`. Returns `false` when called
59
+ * outside a test frame.
60
+ */
61
+ export declare function registerOnTestFinished(cb: TestCleanup): boolean;
62
+ /**
63
+ * Register a callback to run only when the current test fails. Mirrors
64
+ * Vitest's `onTestFailed`. Returns `false` when called outside a test frame.
65
+ */
66
+ export declare function registerOnTestFailed(cb: TestCleanup): boolean;
67
+ /**
68
+ * Register a teardown that runs after the current test regardless of outcome.
69
+ * Vitest-compatible public name for {@link registerOnTestFinished}.
70
+ */
71
+ export declare function onTestFinished(cb: TestCleanup): void;
72
+ /**
73
+ * Register a callback that runs only if the current test fails.
74
+ * Vitest-compatible public name for {@link registerOnTestFailed}.
75
+ */
76
+ export declare function onTestFailed(cb: TestCleanup): void;
77
+ /**
78
+ * Callbacks registered for EVERY test of the run (Japa `Test.executed`). Japa
79
+ * plugins use it to check after each test that something held — `@japa/assert`
80
+ * validates its planned-assertion count there.
81
+ */
82
+ type ExecutedHook = (test: {
83
+ options: unknown;
84
+ context: unknown;
85
+ }, hasError: boolean) => void | Promise<void>;
86
+ /** Register a per-test hook for the whole run (Japa `Test.executed`). */
87
+ export declare function registerExecutedHook(fn: ExecutedHook): void;
88
+ /** Test seam: drop every registered `executed` hook. */
89
+ export declare function resetExecutedHooks(): void;
90
+ /** Attach the injected context to the current frame. */
91
+ export declare function setFrameContext(context: unknown): void;
92
+ /**
93
+ * Drain the `onTestFinished`/`onTestFailed` callbacks for the current frame,
94
+ * then the run-wide `Test.executed` hooks.
95
+ *
96
+ * Returns what an `executed` hook threw, if one did. That hook IS a verdict —
97
+ * `@japa/assert` validates `assert.plan(n)` there and throws when the count is
98
+ * wrong — so swallowing it would let a plugin's whole reason for existing pass
99
+ * green. The frame's own callbacks keep being logged rather than thrown: they
100
+ * are teardown, and a broken one must not invent a failure.
101
+ */
102
+ export declare function drainTestOutcomeHooks(failed: boolean): Promise<unknown>;
103
+ /** Increment the assertion counter for the active test (no-op outside a test). */
104
+ export declare function recordAssertion(): void;
105
+ /** Declare that the current test must make exactly `n` assertions. */
106
+ export declare function setExpectedAssertions(n: number): void;
107
+ /** Declare that the current test must make at least one assertion. */
108
+ export declare function setHasAssertions(): void;
109
+ /** Read the assertion state of the active frame, if any. */
110
+ export declare function getAssertionState(): AssertionState | undefined;
111
+ export {};
25
112
  //# sourceMappingURL=test-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-context.d.ts","sourceRoot":"","sources":["../../src/runtime/test-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAQrD,wBAAsB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAgB3E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAKjE;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
1
+ {"version":3,"file":"test-context.d.ts","sourceRoot":"","sources":["../../src/runtime/test-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,CACzB,QAAQ,CAAC,EAAE,OAAO,EAClB,IAAI,CAAC,EAAE,YAAY,KACf,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC9B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,wEAAwE;IACxE,aAAa,EAAE,OAAO,CAAC;CACvB;AAmBD,wBAAsB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAwB3E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAKjE;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAGrD;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,YAAY,GAAG,SAAS,CAEvD;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,IAAI,YAAY,GAAG,SAAS,CAExD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,YAAY,CAQlD;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAGvD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAK/D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAK7D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAEpD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAElD;AAED;;;;GAIG;AACH,KAAK,YAAY,GAAG,CACnB,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAC5C,QAAQ,EAAE,OAAO,KACb,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAI1B,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAE3D;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGtD;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAoC7E;AAED,kFAAkF;AAClF,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAGrD;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAE9D"}