@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
package/dist/cli/run.js CHANGED
@@ -20,9 +20,10 @@ import { fileURLToPath } from "node:url";
20
20
  import { diffViolationSummary, finaliseDiff, } from "./coverage/diff/index.js";
21
21
  import { finalise as finaliseCoverage, openSession, violationSummary, } from "./coverage/index.js";
22
22
  import { discover } from "./discover.js";
23
+ import { writeFailedCache } from "./failed-cache.js";
23
24
  import { getNative } from "./native.js";
24
25
  import { runPool } from "./pool.js";
25
- import { makeReporter } from "./reporter.js";
26
+ import { makeReporters } from "./reporter.js";
26
27
  import { buildSummary, exitCode, } from "./summary.js";
27
28
  import { runWatch } from "./watch/loop.js";
28
29
  const DEFAULT_WATCH_DEBOUNCE_MS = 200;
@@ -58,12 +59,34 @@ function defaultWorkerEntry() {
58
59
  /**
59
60
  * Plain-path execution via the native `ream-test-napi` engine: it discovers
60
61
  * (skipped here — we pass the resolved `files`), spawns the worker pool, drives
61
- * the reporter, and returns aggregated totals. Per-file detail is carried in
62
- * `payload.json` (same shape as `Summary`) for callers that need it; the CLI
63
- * only consumes `exitCode`, and the Rust reporter already streamed per-file
64
- * output, so the reconstructed `Summary` keeps the detail arrays empty.
62
+ * the reporter, and returns the run's `Summary`.
63
+ *
64
+ * The engine serializes the FULL summary per file, per test — into
65
+ * `payload.json`, so the native path is as detailed as the TypeScript pool.
66
+ * Only if that payload were unreadable would we fall back to the flat totals.
65
67
  */
66
- async function runNative(config, root, files) {
68
+ function parseNativeSummary(json, totals, durationMs) {
69
+ try {
70
+ const parsed = JSON.parse(json);
71
+ if (parsed !== null && typeof parsed === "object") {
72
+ const files = Reflect.get(parsed, "files");
73
+ const fileErrors = Reflect.get(parsed, "fileErrors");
74
+ if (Array.isArray(files)) {
75
+ return {
76
+ totals,
77
+ files,
78
+ fileErrors: Array.isArray(fileErrors) ? fileErrors : [],
79
+ durationMs,
80
+ };
81
+ }
82
+ }
83
+ }
84
+ catch {
85
+ // Fall through to the flat summary below.
86
+ }
87
+ return { totals, files: [], fileErrors: [], durationMs };
88
+ }
89
+ async function runNative(config, root, files, writeCache) {
67
90
  const { run: nativeRun } = getNative();
68
91
  const payload = await nativeRun({
69
92
  root,
@@ -71,6 +94,8 @@ async function runNative(config, root, files) {
71
94
  threads: config.threads,
72
95
  timeoutMs: config.timeoutMs,
73
96
  reporter: config.reporter,
97
+ reporters: config.reporters,
98
+ bail: config.bail,
74
99
  workerEntry: config.workerEntry ?? defaultWorkerEntry(),
75
100
  nodeBin: config.nodeBin ?? process.execPath,
76
101
  nodeArgs: config.nodeArgs,
@@ -83,17 +108,32 @@ async function runNative(config, root, files) {
83
108
  todo: payload.todo,
84
109
  fileErrors: payload.fileErrors,
85
110
  };
86
- const summary = {
87
- totals,
88
- files: [],
89
- fileErrors: [],
90
- durationMs: payload.durationMs,
91
- };
111
+ const summary = parseNativeSummary(payload.json, totals, payload.durationMs);
112
+ // The `--failed` cache is fed by EVERY run, native or not.
113
+ if (writeCache)
114
+ await writeFailedCache(root, summary);
92
115
  return { summary, exitCode: payload.exitCode };
93
116
  }
94
117
  export async function run(config) {
95
- if (!config.watch?.enabled)
118
+ // Adonis/Japa parity: a test run executes in the `test` environment. Set it
119
+ // on the orchestrator BEFORE any worker spawns — both the native (Rust) and
120
+ // TS pools inherit the parent process env, so every worker (where the app +
121
+ // test code is actually loaded) starts with NODE_ENV=test. Mirrors AdonisJS
122
+ // `bin/test.ts`, which sets it UNCONDITIONALLY: a stray `NODE_ENV` from the
123
+ // shell or CI must not leak a non-test env into the suite (the whole point of
124
+ // letting app code gate on `NODE_ENV === 'test'`).
125
+ process.env.NODE_ENV = "test";
126
+ const watch = config.watch;
127
+ if (!watch?.enabled)
96
128
  return runOnce(config);
129
+ return watching({ ...config, watch }, () => runOnce(config));
130
+ }
131
+ /**
132
+ * Wrap ONE full pass in the file watcher. Split out of `run()` because a
133
+ * multi-suite run is a single watched pass: a watcher per suite would settle
134
+ * only on Ctrl-C, so the second suite would never start.
135
+ */
136
+ async function watching(config, pass) {
97
137
  const root = path.isAbsolute(config.root)
98
138
  ? config.root
99
139
  : path.resolve(config.root);
@@ -115,7 +155,103 @@ export async function run(config) {
115
155
  exclude,
116
156
  debounceMs,
117
157
  signal: config.watch.signal,
118
- }, () => runOnce(config));
158
+ }, pass);
159
+ }
160
+ /**
161
+ * Run suites one after another, the way Japa does. Two things only this level
162
+ * can get right:
163
+ * - watch mode wraps the WHOLE sequence in one watcher, so every suite runs
164
+ * on every pass;
165
+ * - the `--failed` cache is written once, from the merged summary, so a
166
+ * `--failed` re-run replays the failures of every suite.
167
+ * `base` carries the run-wide options — watch wiring and `bail`.
168
+ */
169
+ export async function runSuites(suites, base) {
170
+ process.env.NODE_ENV = "test";
171
+ const root = path.isAbsolute(base.root) ? base.root : path.resolve(base.root);
172
+ const pass = async () => {
173
+ const outcomes = [];
174
+ for (const suite of suites) {
175
+ for (const [key, value] of Object.entries(suite.env ?? {})) {
176
+ process.env[key] = value;
177
+ }
178
+ const outcome = await runOnce({ ...suite.config, watch: undefined }, false);
179
+ outcomes.push(outcome);
180
+ if (base.bail === true && outcome.exitCode !== 0)
181
+ break;
182
+ }
183
+ const merged = mergeOutcomes(outcomes);
184
+ await writeFailedCache(root, merged.summary);
185
+ return merged;
186
+ };
187
+ if (!base.watch?.enabled)
188
+ return pass();
189
+ return watching({ ...base, watch: base.watch }, pass);
190
+ }
191
+ /** Fold a sequence of suite outcomes into the one the CLI returns. */
192
+ function mergeOutcomes(outcomes) {
193
+ const totals = { pass: 0, fail: 0, skip: 0, todo: 0, fileErrors: 0 };
194
+ const summary = {
195
+ totals,
196
+ files: [],
197
+ fileErrors: [],
198
+ durationMs: 0,
199
+ };
200
+ const merged = { summary, exitCode: 0 };
201
+ for (const outcome of outcomes) {
202
+ totals.pass += outcome.summary.totals.pass;
203
+ totals.fail += outcome.summary.totals.fail;
204
+ totals.skip += outcome.summary.totals.skip;
205
+ totals.todo += outcome.summary.totals.todo;
206
+ totals.fileErrors += outcome.summary.totals.fileErrors;
207
+ summary.files.push(...outcome.summary.files);
208
+ summary.fileErrors.push(...outcome.summary.fileErrors);
209
+ summary.durationMs += outcome.summary.durationMs;
210
+ merged.exitCode = Math.max(merged.exitCode, outcome.exitCode);
211
+ // Coverage is per-suite (each suite opens its own session); keep the last
212
+ // report and every violation, so no threshold failure is swallowed.
213
+ if (outcome.coverage)
214
+ merged.coverage = outcome.coverage;
215
+ if (outcome.diffCoverage)
216
+ merged.diffCoverage = outcome.diffCoverage;
217
+ if (outcome.coverageViolations?.length) {
218
+ merged.coverageViolations = [
219
+ ...(merged.coverageViolations ?? []),
220
+ ...outcome.coverageViolations,
221
+ ];
222
+ }
223
+ if (outcome.diffCoverageViolations?.length) {
224
+ merged.diffCoverageViolations = [
225
+ ...(merged.diffCoverageViolations ?? []),
226
+ ...outcome.diffCoverageViolations,
227
+ ];
228
+ }
229
+ }
230
+ return merged;
231
+ }
232
+ /** Swallows every reporter callback — used while listing pinned tests. */
233
+ const SILENT_REPORTER = {
234
+ onFileStart() { },
235
+ onFileResult() { },
236
+ onFileError() { },
237
+ onSummary() { },
238
+ };
239
+ /**
240
+ * `--list-pinned` output: every pinned test, grouped by the file it lives in.
241
+ * Japa prints the list and exits 0 without running anything.
242
+ */
243
+ function printPinnedTests(results) {
244
+ let total = 0;
245
+ for (const result of results) {
246
+ const pinned = result.pinned ?? [];
247
+ if (pinned.length === 0)
248
+ continue;
249
+ process.stdout.write(`${result.file}\n`);
250
+ for (const name of pinned)
251
+ process.stdout.write(` ${name}\n`);
252
+ total += pinned.length;
253
+ }
254
+ process.stdout.write(total === 0 ? "No pinned tests\n" : `\n${total} pinned test(s)\n`);
119
255
  }
120
256
  /** Resolve the explicit file list, or discover, warning when nothing matches. */
121
257
  async function resolveRunFiles(config, root) {
@@ -236,7 +372,13 @@ async function overlayDiffCoverage(config, root, coverage, out) {
236
372
  out.diffCoverageFailed = true;
237
373
  }
238
374
  }
239
- async function runOnce(config) {
375
+ /**
376
+ * One pass over the resolved files. `writeCache` is off when the caller runs a
377
+ * SEQUENCE of suites and writes the `--failed` cache itself, from the merged
378
+ * summary — otherwise each suite would overwrite the previous suite's failures
379
+ * and `--failed` would replay only the last one.
380
+ */
381
+ async function runOnce(config, writeCache = true) {
240
382
  const started = Date.now();
241
383
  const root = path.isAbsolute(config.root)
242
384
  ? config.root
@@ -247,13 +389,22 @@ async function runOnce(config) {
247
389
  // layer is active — a pluggable reporter instance, coverage, or diff-cov,
248
390
  // none of which the Rust `run` exposes yet. Watch is already unwrapped by
249
391
  // `run()` above, so it never reaches here.
250
- if (!config.reporterInstance &&
251
- config.coverage?.enabled !== true &&
252
- config.diffCoverage?.enabled !== true) {
253
- return runNative(config, root, files);
392
+ // The native engine owns discovery + pool + reporter + summary — including
393
+ // `--bail` and a reporter chain. Only the TS-only layers (a pluggable
394
+ // reporter INSTANCE, coverage, diff coverage) move a run onto the TS pool.
395
+ const needsTsPool = config.listPinned === true ||
396
+ config.reporterInstance !== undefined ||
397
+ config.coverage?.enabled === true ||
398
+ config.diffCoverage?.enabled === true;
399
+ if (!needsTsPool) {
400
+ return runNative(config, root, files, writeCache);
254
401
  }
255
- const reporter = config.reporterInstance ??
256
- makeReporter(config.reporter, config.useColors ?? process.stdout.isTTY === true);
402
+ // `--list-pinned` prints the list and nothing else, so no reporter runs
403
+ // otherwise the per-file banners would frame output that is not a run.
404
+ const reporter = config.listPinned === true
405
+ ? SILENT_REPORTER
406
+ : (config.reporterInstance ??
407
+ makeReporters(config.reporters ?? (config.reporter ? [config.reporter] : []), config.useColors ?? process.stdout.isTTY === true));
257
408
  const threads = config.threads ?? os.cpus().length;
258
409
  assertDiffCoverageConfig(config, root);
259
410
  // Open a coverage session BEFORE spawning workers so `NODE_V8_COVERAGE`
@@ -268,9 +419,18 @@ async function runOnce(config) {
268
419
  threads,
269
420
  timeoutMs: config.timeoutMs,
270
421
  extraEnv: session?.env,
422
+ bail: config.bail,
271
423
  }, reporter);
272
424
  const summary = buildSummary(results, errors, Date.now() - started);
425
+ if (config.listPinned === true) {
426
+ printPinnedTests(results);
427
+ return { summary, exitCode: 0 };
428
+ }
273
429
  reporter.onSummary(summary);
430
+ // Feed the `--failed` cache with this run's failures (Japa writes it from
431
+ // a runner teardown).
432
+ if (writeCache)
433
+ await writeFailedCache(root, summary);
274
434
  const cov = session && config.coverage
275
435
  ? await finaliseCoverageOutcome({ ...config, coverage: config.coverage }, root, session)
276
436
  : { diffCoverageFailed: false };
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The programmatic runner — everything a HOST framework needs to drive helix
3
+ * from its own config file.
4
+ *
5
+ * `bin/helix.js` reads `helix.config.*` and drives these; a framework that
6
+ * declares its suites elsewhere (ream reads them from its rc file, the way
7
+ * `@adonisjs/core` reads `adonisrc.ts` and hands the suites to Japa) composes
8
+ * the same pieces instead of shelling out to the CLI.
9
+ */
10
+ export { BOOTSTRAP_FILENAMES, resolveBootstrap, } from "../runtime/bootstrap.js";
11
+ export { runGlobalHooks } from "../runtime/global-hooks.js";
12
+ export type { Reporter } from "./reporter.js";
13
+ export { makeReporters, makeReportersFrom } from "./reporter.js";
14
+ export type { RunConfig, RunOutcome, SuiteRun, WatchOptions } from "./run.js";
15
+ export { run, runSuites } from "./run.js";
16
+ export type { HelixConfig, SuiteDefinition, SuiteFiles } from "./suites.js";
17
+ export { loadHelixConfig, resolveSuiteFiles, selectSuites } from "./suites.js";
18
+ export type { Summary } from "./summary.js";
19
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/cli/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACN,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The programmatic runner — everything a HOST framework needs to drive helix
3
+ * from its own config file.
4
+ *
5
+ * `bin/helix.js` reads `helix.config.*` and drives these; a framework that
6
+ * declares its suites elsewhere (ream reads them from its rc file, the way
7
+ * `@adonisjs/core` reads `adonisrc.ts` and hands the suites to Japa) composes
8
+ * the same pieces instead of shelling out to the CLI.
9
+ */
10
+ export { BOOTSTRAP_FILENAMES, resolveBootstrap, } from "../runtime/bootstrap.js";
11
+ export { runGlobalHooks } from "../runtime/global-hooks.js";
12
+ export { makeReporters, makeReportersFrom } from "./reporter.js";
13
+ export { run, runSuites } from "./run.js";
14
+ export { loadHelixConfig, resolveSuiteFiles, selectSuites } from "./suites.js";
15
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/cli/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACN,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Named test suites — helix's equivalent of the `tests` block AdonisJS puts in
3
+ * `adonisrc.ts`, so `helix test unit` runs a suite rather than a path. The
4
+ * SHAPE is Adonis's (`timeout`, `forceExit`, `suites[{ name, files, timeout }]`)
5
+ * and the glob syntax is portable verbatim, but the file read is
6
+ * `helix.config.*`: helix is framework-agnostic, and `adonisrc.ts` belongs to
7
+ * the framework that owns it — in Adonis it is `@adonisjs/core`, not Japa, that
8
+ * reads the file and hands the suites to the runner.
9
+ *
10
+ * // helix.config.ts
11
+ * export default {
12
+ * timeout: 2_000,
13
+ * suites: [
14
+ * { name: "unit", files: ["tests/unit/**​/*.spec.(js|ts)"] },
15
+ * { name: "functional", files: ["tests/functional"], timeout: 30_000 },
16
+ * ],
17
+ * }
18
+ *
19
+ * A suite's `files` are plain paths (a directory is walked with helix's suffix
20
+ * discovery) or globs — including AdonisJS's own defaults, verbatim:
21
+ * `tests/unit/**​/*.spec.(js|ts)`. See `glob.ts` for the compiled subset and the
22
+ * two forms it refuses rather than half-honours.
23
+ */
24
+ import type { SuiteHandle } from "../runtime/suite-taps.js";
25
+ import { type DiscoveryOptions } from "./discover.js";
26
+ /**
27
+ * A suite's file list — Japa's `TestFiles`, the three forms it accepts: one
28
+ * pattern, several, or a callback returning the URLs. The callback runs in the
29
+ * CLI process, where the config module was imported, so it can look wherever it
30
+ * likes for its files.
31
+ */
32
+ export type SuiteFiles = string | string[] | (() => URL[] | Promise<URL[]>);
33
+ /** One suite, as declared in the config file. */
34
+ export interface SuiteDefinition {
35
+ /** Suite name — what `helix test <name>` selects. */
36
+ name: string;
37
+ /** Paths, globs, or a callback returning the files (Japa `TestFiles`). */
38
+ files: SuiteFiles;
39
+ /** Per-test timeout for this suite (ms). */
40
+ timeout?: number;
41
+ /** Extra attempts on failure for this suite. */
42
+ retries?: number;
43
+ /**
44
+ * Configure the suite before it runs (Japa `TestSuite.configure`). Receives
45
+ * the same handle as the bootstrap's `configureSuite`, and runs after it.
46
+ *
47
+ * Costs an import of this config module in every worker, since a function
48
+ * cannot cross the process boundary — `configureSuite` in
49
+ * `tests/bootstrap.ts` does the same job for free, and is what AdonisJS
50
+ * itself uses.
51
+ */
52
+ configure?: (suite: SuiteHandle) => void;
53
+ }
54
+ /** The shape of `helix.config.{ts,js,mjs}`. */
55
+ export interface HelixConfig {
56
+ suites?: SuiteDefinition[];
57
+ /**
58
+ * Path to the bootstrap module (AdonisJS `tests/bootstrap.ts`), relative to
59
+ * the project root. Defaults to the conventional `tests/bootstrap.*`.
60
+ */
61
+ bootstrap?: string;
62
+ /** Default per-test timeout in ms — AdonisJS `tests.timeout`. */
63
+ timeout?: number;
64
+ /** `process.exit()` once the run ends — AdonisJS `tests.forceExit`. */
65
+ forceExit?: boolean;
66
+ /**
67
+ * Point `@japa/runner/core` at helix's shim in every worker, so an official
68
+ * Japa plugin (`@japa/assert`, …) instruments helix instead of a Japa that is
69
+ * not running.
70
+ *
71
+ * Off by default: redirecting a package specifier is not something to do
72
+ * behind a user's back, and a project with no Japa plugin gains nothing.
73
+ */
74
+ japaPlugins?: boolean;
75
+ }
76
+ /**
77
+ * Load `helix.config.*` from `root`, or `{}` when there is none. A config that
78
+ * throws on import is a hard error — silently ignoring it would run the wrong
79
+ * set of tests.
80
+ */
81
+ export declare function loadHelixConfig(root: string): Promise<HelixConfig>;
82
+ /**
83
+ * The config file helix would load, or `undefined` when there is none. Exposed
84
+ * because a `suites[].configure` callback has to be re-imported in the worker —
85
+ * a function does not cross a process boundary.
86
+ */
87
+ export declare function resolveHelixConfig(root: string): string | undefined;
88
+ /**
89
+ * Resolve a suite's `files` into absolute test file paths. A plain path is a
90
+ * directory to walk (helix's suffix discovery) or a file; anything with a
91
+ * pattern character goes through the glob matcher, so AdonisJS's own
92
+ * `tests/unit/**​/*.spec.(js|ts)` ports over verbatim. A `!pattern` entry
93
+ * subtracts from what the others selected.
94
+ */
95
+ export declare function resolveSuiteFiles(suite: SuiteDefinition, root: string, discovery: DiscoveryOptions | undefined): Promise<string[]>;
96
+ /**
97
+ * Pick the suites named on the command line. Returns `undefined` when the
98
+ * positionals are NOT suite names — the caller then treats them as paths, which
99
+ * is what every helix project without a config file does.
100
+ */
101
+ export declare function selectSuites(config: HelixConfig, positionals: string[]): SuiteDefinition[] | undefined;
102
+ //# sourceMappingURL=suites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suites.d.ts","sourceRoot":"","sources":["../../src/cli/suites.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,KAAK,gBAAgB,EAAY,MAAM,eAAe,CAAC;AAUhE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAE5E,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC/B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,KAAK,EAAE,UAAU,CAAC;IAClB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACzC;AAED,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC3B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AA0ED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAKxE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMnE;AA8CD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACtC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,gBAAgB,GAAG,SAAS,GACrC,OAAO,CAAC,MAAM,EAAE,CAAC,CAiDnB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,EAAE,GACnB,eAAe,EAAE,GAAG,SAAS,CAU/B"}