@descryy/runtime-test-runner 0.2.0 → 0.3.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.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export type { TestRunnerConfiguration, TestRunnerCollectorOptions, TestRunnerCollector, RunnerDiscovery, RunnerKind, SkipReason, TraceCoverage, EnvelopeVerdict } from "./test-runner-collector.ts";
2
- export { createTestRunnerCollector, discoverRunner, withReporterFlags, reporterFlagsFor, reporterEnvFor, createEnvelopeGate, ENVELOPE_VERSION, ENVELOPE_HANDSHAKE_TYPE } from "./test-runner-collector.ts";
1
+ export type { TestRunnerConfiguration, TestRunnerCollectorOptions, TestRunnerCollector, RunnerDiscovery, RunnerKind, RunnerMatch, SkipReason, TraceCoverage, EnvelopeVerdict, NodeTestEvent } from "./test-runner-collector.ts";
2
+ export { createTestRunnerCollector, discoverRunner, matchRunner, withReporterFlags, reporterFlagsFor, reporterEnvFor, supportedRunnerExamples, createEnvelopeGate, createUnittestResultParser, ENVELOPE_VERSION, ENVELOPE_HANDSHAKE_TYPE, } from "./test-runner-collector.ts";
3
3
  export type { ObservedTestCaseResolution } from "./graph-mapping.ts";
4
4
  export { resolveObservedTestCase } from "./graph-mapping.ts";
5
5
  export type { SwiftTestDump, DiscoveredSwiftClass, SwiftDiscoveryResult, SwiftXCTestCollectorOptions, SwiftXCTestCollector } from "./swift-xctest.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACpM,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAE3M,YAAY,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACtJ,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChO,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACtJ,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { createTestRunnerCollector, discoverRunner, withReporterFlags, reporterFlagsFor, reporterEnvFor, createEnvelopeGate, ENVELOPE_VERSION, ENVELOPE_HANDSHAKE_TYPE } from "./test-runner-collector.js";
1
+ export { createTestRunnerCollector, discoverRunner, matchRunner, withReporterFlags, reporterFlagsFor, reporterEnvFor, supportedRunnerExamples, createEnvelopeGate, createUnittestResultParser, ENVELOPE_VERSION, ENVELOPE_HANDSHAKE_TYPE, } from "./test-runner-collector.js";
2
2
  export { resolveObservedTestCase } from "./graph-mapping.js";
3
3
  export { discoverClasses, generateLinuxMain, discoverSwiftTests, writeLinuxMain, removeGeneratedLinuxMain, createSwiftXCTestCollector, GENERATED_MARKER, } from "./swift-xctest.js";
4
4
  export { isGoTestEvent, createGoEventTranslator, createGoTestCollector } from "./go-test.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAG3M,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -33,7 +33,7 @@
33
33
  * state, not derivation.
34
34
  *
35
35
  * **Discovery is declared, never inferred** (RT-032's own precedent):
36
- * `discoverRunner` refuses a command that names none of the three runners
36
+ * `discoverRunner` refuses a command that names none of the eleven runners
37
37
  * it observes, rather than sniffing `package.json`/lockfiles to guess which
38
38
  * runner a project uses. Also refuses a command that already carries its
39
39
  * own `--test-reporter` — safely co-existing with an unknown pre-existing
@@ -42,6 +42,28 @@
42
42
  * to get right blindly; a caller who wants both gets an honest refusal
43
43
  * naming why, not a best-effort guess.
44
44
  *
45
+ * **unittest is the one profile with no reporter API to speak the envelope
46
+ * at all** (B4's own root-cause note: "a disclosed gap, not a missing
47
+ * capability" was the wrong ruling once a real user's declared command
48
+ * turned out to be exactly this one). `python -m unittest` has no plugin
49
+ * flag, no custom-runner flag, nothing argv can point at an installed
50
+ * module the way every other profile's reporter is loaded — so it is the
51
+ * one runner whose events are parsed from its own human-readable `-v`
52
+ * stdout/stderr text (`createUnittestResultParser`, below) rather than
53
+ * translated from NDJSON through the shared envelope gate. `start()`
54
+ * branches on `discovery.kind === "unittest"` for exactly this reason, a
55
+ * disclosed, narrow exception to "no per-runner branch below this line" —
56
+ * everything the parser produces still feeds the same `NodeTestEvent`
57
+ * shape and the same `createEventTranslator`, so a `TEST_CASE` result from
58
+ * unittest is indistinguishable downstream from one any other runner
59
+ * produced. What it cannot produce: a real `sourceLocation` (unittest's
60
+ * per-test line carries a qualified name, never a file/line — that only
61
+ * appears in the traceback section printed after every test has already
62
+ * finished, and matching one back to the right earlier result with
63
+ * confidence is exactly the inference precision-over-recall forbids), so
64
+ * every unittest result carries a null `sourceLocation` rather than one
65
+ * derived from prose.
66
+ *
45
67
  * **Trace capture (RT-074): declared, via `TestContext.diagnostic()`, not
46
68
  * inferred from anything.** A test that makes a backend call and wants its
47
69
  * TEST_PASSED/TEST_FAILED evidence to correlate with that call's backend
@@ -96,7 +118,7 @@ export interface TestRunnerCollectorOptions {
96
118
  * discovery rather than re-derived, so nothing downstream re-parses a
97
119
  * command string it has already been told the answer for.
98
120
  */
99
- export type RunnerKind = "node:test" | "jest" | "vitest" | "junit" | "xunit" | "playwright" | "pytest" | "rspec" | "phpunit" | "minitest";
121
+ export type RunnerKind = "node:test" | "jest" | "vitest" | "junit" | "xunit" | "playwright" | "pytest" | "rspec" | "phpunit" | "minitest" | "unittest";
100
122
  /**
101
123
  * The version of the NDJSON envelope every reporter speaks (RT-130).
102
124
  *
@@ -211,6 +233,62 @@ export type RunnerDiscovery = {
211
233
  * three and is why this is per-runner rather than one shared rule.
212
234
  */
213
235
  export declare function withReporterFlags(args: readonly string[]): readonly string[];
236
+ /**
237
+ * One declared-command example per `PROFILES` entry, in table order.
238
+ *
239
+ * This is the fix for B4: the "names no runner this collector observes"
240
+ * refusal used to be a hardcoded string naming three runners, written when
241
+ * only node:test/Jest/Vitest existed and never regenerated as the other
242
+ * seven landed — so a published build that fully supported pytest told a
243
+ * Python caller only "node, jest, vitest" are supported. Deriving the list
244
+ * from `PROFILES` here means it cannot go stale again without the profile
245
+ * itself changing.
246
+ */
247
+ export declare function supportedRunnerExamples(): readonly string[];
248
+ /** What `matchRunner` answers for a command it can name a profile for — everything a caller needs to render "this collector would use X", without exposing `RunnerProfile` itself. */
249
+ export interface RunnerMatch {
250
+ readonly kind: RunnerKind;
251
+ readonly declaredAs: string;
252
+ }
253
+ /**
254
+ * Pure, side-effect-free: answers "would `discoverRunner` recognise this
255
+ * command's *shape*, and as which runner" without tokenizing into anything
256
+ * spawnable, without touching the filesystem, and without starting a
257
+ * collector.
258
+ *
259
+ * **Exists for one reason** (the second UAT finding on B4): `descry-core`'s
260
+ * `observe_tests` handshake used to mint a confirmation token for any
261
+ * declared command and only discover — on redemption, after already
262
+ * promising the caller a run — that `discoverRunner` would refuse it. A
263
+ * handshake that calls this function before minting a token refuses before
264
+ * it promises, instead of after.
265
+ *
266
+ * **The same matching `discoverRunner` itself uses, not a second copy of
267
+ * it.** Both call `findMatchingProfile`; a profile added, removed, or
268
+ * changed here is reflected in both without either being touched again —
269
+ * the discipline the hardcoded three-runner refusal list never had.
270
+ *
271
+ * A command `tokenizeCommand` cannot parse, and a command wrapped in `npx`,
272
+ * both return `null` here exactly as `discoverRunner` refuses them — `null`
273
+ * is authoritative in both of those cases: if this returns `null`,
274
+ * `discoverRunner` returns `{ ok: false }` for the same command, always.
275
+ * It is **not** authoritative the other direction — a non-null result names
276
+ * which profile a command's shape matches, not that `discoverRunner` will
277
+ * ultimately accept it. A matched profile can still refuse on the full
278
+ * argument list (`vitest` with no `run`, a command that already configures
279
+ * its own `--reporter`), which needs the complete tokenized args this
280
+ * predicate deliberately does not evaluate — that is a second, more
281
+ * specific refusal reached only by actually calling `discoverRunner`. Read
282
+ * a non-null result as "not obviously unsupported", not as "guaranteed to
283
+ * run".
284
+ *
285
+ * Use `supportedRunnerExamples()` to render the same "supported, and each
286
+ * declared explicitly: ..." list `discoverRunner`'s own generic refusal
287
+ * uses, so a handshake's up-front refusal and this collector's own
288
+ * run-time refusal are guaranteed to name the same runners rather than
289
+ * being two strings that happen to agree today.
290
+ */
291
+ export declare function matchRunner(rawCommand: string): RunnerMatch | null;
214
292
  /**
215
293
  * Exported on its own so a caller can validate a configured command before
216
294
  * ever attempting to spawn it — the same "refuse atomically before anything
@@ -288,6 +366,65 @@ export interface NodeTestEvent {
288
366
  };
289
367
  }
290
368
  export declare function isNodeTestEvent(value: unknown): value is NodeTestEvent;
369
+ /**
370
+ * Parses CPython's own `unittest.runner.TextTestResult` verbose (`-v`)
371
+ * output into the same `NodeTestEvent` shape every other profile's reporter
372
+ * emits as real NDJSON -- so `createEventTranslator` never has to know this
373
+ * event did not arrive as JSON. See the file-level doc comment ("unittest is
374
+ * the one profile...") for why a reporter is not possible here at all.
375
+ *
376
+ * **Measured directly against a real `python -m unittest -v` run**, not
377
+ * assumed from documentation:
378
+ *
379
+ * ```
380
+ * test_pass (test_sample.TestSample.test_pass) ... ok
381
+ * test_fail (test_sample.TestSample.test_fail) ... FAIL
382
+ * test_error (test_sample.TestSample.test_error) ... ERROR
383
+ * test_skip (test_sample.TestSample.test_skip) ... skipped 'not ready'
384
+ * test_xfail (test_sample.TestSample.test_xfail) ... expected failure
385
+ * test_xpass (test_sample.TestSample.test_xpass) ... unexpected success
386
+ * ```
387
+ *
388
+ * and, for a test with a docstring, split across two lines instead of one
389
+ * (`getDescription` returns `"%s\n%s" % (str(test), doc_first_line)` when a
390
+ * docstring is present, `str(test)` alone otherwise):
391
+ *
392
+ * ```
393
+ * test_with_doc (test_doc.TestDoc.test_with_doc)
394
+ * This is a docstring. ... ok
395
+ * ```
396
+ *
397
+ * A header-only line is trusted for at most one line of lookahead: whatever
398
+ * arrives next either completes it (a docstring's first line, ending in
399
+ * ` ... <outcome>`) or does not, and either way the header is then
400
+ * discarded -- never left pending indefinitely waiting for a continuation
401
+ * that a stray print from the test body or an unrecognised outcome word
402
+ * might otherwise be mistaken for. A line the parser cannot place at all
403
+ * (the `======`/`----` banners, a traceback body, `Ran N tests...`, `OK`,
404
+ * `FAILED (...)`, or the test process's own stdout) is silently ignored --
405
+ * the same "unparseable output is ordinary and expected" rule every
406
+ * NDJSON-based profile already applies to its own noise.
407
+ *
408
+ * **What this deliberately does not attempt.** unittest's per-test line
409
+ * carries a qualified name only, never a file or line number -- those
410
+ * appear solely in the traceback section printed after every test in the
411
+ * run has already finished, under a `======`-delimited header repeating the
412
+ * test's own description. Re-associating that traceback with the correct
413
+ * earlier result, reliably, across a run with many tests (some sharing a
414
+ * class or method name across modules), is exactly the kind of inference
415
+ * precision-over-recall exists to forbid -- so no attempt is made, every
416
+ * `sourceLocation` this parser produces is null, and every FAILED/ERROR
417
+ * carries no `error` detail either, rather than one guessed from prose.
418
+ * `expected failure`/`unexpected success` fold into `TEST_SKIPPED`/
419
+ * `TEST_PASSED` respectively -- the same choice the pytest reporter already
420
+ * made for `xfail`/`xpass`, not a new one invented here. An outcome word
421
+ * this parser has never measured (a future CPython addition) still gets a
422
+ * `TEST_STARTED` -- the test did start -- but no paired result, on the same
423
+ * "report nothing rather than guess" rule.
424
+ */
425
+ export declare function createUnittestResultParser(): {
426
+ feed(line: string): readonly NodeTestEvent[];
427
+ };
291
428
  /**
292
429
  * `test:pass`/`test:fail` arrive from node's own reporter stream BEFORE any
293
430
  * `t.diagnostic()` call inside that same test shows up as its own
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner-collector.d.ts","sourceRoot":"","sources":["../src/test-runner-collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-runner-collector.d.ts","sourceRoot":"","sources":["../src/test-runner-collector.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@
33
33
  * state, not derivation.
34
34
  *
35
35
  * **Discovery is declared, never inferred** (RT-032's own precedent):
36
- * `discoverRunner` refuses a command that names none of the three runners
36
+ * `discoverRunner` refuses a command that names none of the eleven runners
37
37
  * it observes, rather than sniffing `package.json`/lockfiles to guess which
38
38
  * runner a project uses. Also refuses a command that already carries its
39
39
  * own `--test-reporter` — safely co-existing with an unknown pre-existing
@@ -42,6 +42,28 @@
42
42
  * to get right blindly; a caller who wants both gets an honest refusal
43
43
  * naming why, not a best-effort guess.
44
44
  *
45
+ * **unittest is the one profile with no reporter API to speak the envelope
46
+ * at all** (B4's own root-cause note: "a disclosed gap, not a missing
47
+ * capability" was the wrong ruling once a real user's declared command
48
+ * turned out to be exactly this one). `python -m unittest` has no plugin
49
+ * flag, no custom-runner flag, nothing argv can point at an installed
50
+ * module the way every other profile's reporter is loaded — so it is the
51
+ * one runner whose events are parsed from its own human-readable `-v`
52
+ * stdout/stderr text (`createUnittestResultParser`, below) rather than
53
+ * translated from NDJSON through the shared envelope gate. `start()`
54
+ * branches on `discovery.kind === "unittest"` for exactly this reason, a
55
+ * disclosed, narrow exception to "no per-runner branch below this line" —
56
+ * everything the parser produces still feeds the same `NodeTestEvent`
57
+ * shape and the same `createEventTranslator`, so a `TEST_CASE` result from
58
+ * unittest is indistinguishable downstream from one any other runner
59
+ * produced. What it cannot produce: a real `sourceLocation` (unittest's
60
+ * per-test line carries a qualified name, never a file/line — that only
61
+ * appears in the traceback section printed after every test has already
62
+ * finished, and matching one back to the right earlier result with
63
+ * confidence is exactly the inference precision-over-recall forbids), so
64
+ * every unittest result carries a null `sourceLocation` rather than one
65
+ * derived from prose.
66
+ *
45
67
  * **Trace capture (RT-074): declared, via `TestContext.diagnostic()`, not
46
68
  * inferred from anything.** A test that makes a backend call and wants its
47
69
  * TEST_PASSED/TEST_FAILED evidence to correlate with that call's backend
@@ -312,6 +334,7 @@ export function withReporterFlags(args) {
312
334
  const PROFILES = [
313
335
  {
314
336
  kind: "node:test",
337
+ declaredAs: "node ... --test ...",
315
338
  // Matched on the executable alone, with `--test` checked in `refuse`
316
339
  // rather than here. Matching on both would make `node server.mjs` fall
317
340
  // through to the generic "names no runner" message, which is true and
@@ -330,6 +353,7 @@ const PROFILES = [
330
353
  },
331
354
  {
332
355
  kind: "jest",
356
+ declaredAs: "jest ...",
333
357
  matches: (baseName) => baseName === "jest" || baseName === "jest.js",
334
358
  refuse: (args) => hasFlag(args, "--reporters")
335
359
  ? "command already configures --reporters -- this collector needs to own the reporter to observe structured events, and Jest's --reporters REPLACES the default set rather than adding to it, so co-existing safely with an unknown one is not attempted. Remove the existing --reporters flag."
@@ -341,6 +365,7 @@ const PROFILES = [
341
365
  },
342
366
  {
343
367
  kind: "vitest",
368
+ declaredAs: "vitest run ...",
344
369
  matches: (baseName) => baseName === "vitest" || baseName === "vitest.js",
345
370
  refuse: (args) => {
346
371
  // **Vitest defaults to WATCH mode**, and a watching runner never
@@ -363,6 +388,7 @@ const PROFILES = [
363
388
  },
364
389
  {
365
390
  kind: "junit",
391
+ declaredAs: "java -jar junit-platform-console-standalone-<version>.jar execute ...",
366
392
  // `java` alone, with the specifics in `refuse` — the node:test
367
393
  // precedent. `java -jar app.jar` is an ordinary command and the useful
368
394
  // answer for it is "that is not the console launcher", not the generic
@@ -395,6 +421,7 @@ const PROFILES = [
395
421
  },
396
422
  {
397
423
  kind: "playwright",
424
+ declaredAs: "playwright test ...",
398
425
  matches: (baseName) => baseName === "playwright" || baseName === "playwright.js",
399
426
  refuse: (args) => {
400
427
  // `playwright` alone is the CLI (codegen, install, show-report); only
@@ -415,6 +442,7 @@ const PROFILES = [
415
442
  },
416
443
  {
417
444
  kind: "xunit",
445
+ declaredAs: "dotnet test ...",
418
446
  matches: (baseName) => baseName === "dotnet" || baseName === "dotnet.exe",
419
447
  refuse: (args) => {
420
448
  if (args[0] !== "test") {
@@ -440,6 +468,7 @@ const PROFILES = [
440
468
  },
441
469
  {
442
470
  kind: "pytest",
471
+ declaredAs: "pytest ... (or python -m pytest ...)",
443
472
  // `pytest ...` directly, or `python -m pytest ...` (and the `python3`/
444
473
  // `.exe` spellings) — the node:test precedent of matching the
445
474
  // interpreter and checking the invocation shape in `refuse`, since
@@ -462,6 +491,7 @@ const PROFILES = [
462
491
  },
463
492
  {
464
493
  kind: "rspec",
494
+ declaredAs: "rspec ...",
465
495
  // `rspec ...` directly, or `ruby <path/to/rspec> ...` — RSpec's own
466
496
  // installed binary is itself a Ruby script, and some environments (this
467
497
  // one included — see rspec-reporter.test.ts) invoke it through an
@@ -480,6 +510,7 @@ const PROFILES = [
480
510
  },
481
511
  {
482
512
  kind: "phpunit",
513
+ declaredAs: "phpunit ...",
483
514
  // `phpunit ...` directly (the composer-installed binary, itself a PHP
484
515
  // script with a shebang), or `php <path/to/phpunit-or-.phar> ...` — the
485
516
  // same dual shape as rspec's, for the same reason: some environments
@@ -511,6 +542,7 @@ const PROFILES = [
511
542
  },
512
543
  {
513
544
  kind: "minitest",
545
+ declaredAs: "ruby -r minitest/autorun ...",
514
546
  // The interpreter alone is not enough — every `ruby <file>` command
515
547
  // shares it, tests and non-tests alike. `declaresRequire` is what
516
548
  // actually distinguishes a Minitest invocation, so it is checked here in
@@ -537,7 +569,108 @@ const PROFILES = [
537
569
  return [...args.slice(0, insertAt), "-r", MINITEST_REPORTER_PATH, ...args.slice(insertAt)];
538
570
  },
539
571
  },
572
+ {
573
+ kind: "unittest",
574
+ declaredAs: "python -m unittest ... (or python -m unittest discover ...)",
575
+ // `python -m unittest`, told apart from `python other_script.py` the
576
+ // same way pytest's own profile is: matching the interpreter and
577
+ // checking the invocation shape (`-m unittest`) in `matches`, not the
578
+ // executable alone.
579
+ matches: (baseName, args) => (baseName === "python" || baseName === "python3" || baseName === "python.exe") && args[0] === "-m" && args[1] === "unittest",
580
+ refuse: (args) => hasFlag(args, "-q") || hasFlag(args, "--quiet")
581
+ ? "command already configures -q/--quiet -- this collector needs unittest's own -v per-test lines to tell one test's result from another, and quiet mode suppresses exactly those lines. Remove the existing -q/--quiet flag."
582
+ : null,
583
+ // **Inserted right after the token that starts the mode it belongs to,
584
+ // never before it.** Measured directly: `python -m unittest -v discover
585
+ // -s tests -t .` fails outright ("unrecognized arguments: -s tests -t
586
+ // ."), because a flag placed before `discover` makes the top-level
587
+ // parser treat `discover` itself as a bare positional test name rather
588
+ // than the subcommand, and everything meant for `discover` becomes
589
+ // unrecognised. `python -m unittest discover -v -s tests -t .` works.
590
+ // So `-v` goes right after `discover` in that mode, and right after
591
+ // `unittest` (bare-module mode) otherwise -- the same "insert after the
592
+ // identifying token" rule node:test's own profile already set for
593
+ // `--test`. A caller who already declared `-v`/`--verbose` gets nothing
594
+ // added a second time.
595
+ withReporterFlags: (args) => {
596
+ if (hasFlag(args, "-v") || hasFlag(args, "--verbose"))
597
+ return args;
598
+ const insertAt = args[2] === "discover" ? 3 : 2;
599
+ return [...args.slice(0, insertAt), "-v", ...args.slice(insertAt)];
600
+ },
601
+ },
540
602
  ];
603
+ /**
604
+ * One declared-command example per `PROFILES` entry, in table order.
605
+ *
606
+ * This is the fix for B4: the "names no runner this collector observes"
607
+ * refusal used to be a hardcoded string naming three runners, written when
608
+ * only node:test/Jest/Vitest existed and never regenerated as the other
609
+ * seven landed — so a published build that fully supported pytest told a
610
+ * Python caller only "node, jest, vitest" are supported. Deriving the list
611
+ * from `PROFILES` here means it cannot go stale again without the profile
612
+ * itself changing.
613
+ */
614
+ export function supportedRunnerExamples() {
615
+ return PROFILES.map((profile) => profile.declaredAs);
616
+ }
617
+ /** `true` for the one command shape neither `discoverRunner` nor `matchRunner` will ever match to a profile — see `discoverRunner`'s own npx comment for why unwrapping it is not attempted. */
618
+ function isNpxWrapped(baseName) {
619
+ return baseName === "npx" || baseName === "npx.cmd";
620
+ }
621
+ /** The one place `discoverRunner` and `matchRunner` both ask "which profile matches this command" — a shared call so the two can never drift apart the way the hardcoded refusal list once did (B4). */
622
+ function findMatchingProfile(baseName, args) {
623
+ return PROFILES.find((candidate) => candidate.matches(baseName, args));
624
+ }
625
+ /**
626
+ * Pure, side-effect-free: answers "would `discoverRunner` recognise this
627
+ * command's *shape*, and as which runner" without tokenizing into anything
628
+ * spawnable, without touching the filesystem, and without starting a
629
+ * collector.
630
+ *
631
+ * **Exists for one reason** (the second UAT finding on B4): `descry-core`'s
632
+ * `observe_tests` handshake used to mint a confirmation token for any
633
+ * declared command and only discover — on redemption, after already
634
+ * promising the caller a run — that `discoverRunner` would refuse it. A
635
+ * handshake that calls this function before minting a token refuses before
636
+ * it promises, instead of after.
637
+ *
638
+ * **The same matching `discoverRunner` itself uses, not a second copy of
639
+ * it.** Both call `findMatchingProfile`; a profile added, removed, or
640
+ * changed here is reflected in both without either being touched again —
641
+ * the discipline the hardcoded three-runner refusal list never had.
642
+ *
643
+ * A command `tokenizeCommand` cannot parse, and a command wrapped in `npx`,
644
+ * both return `null` here exactly as `discoverRunner` refuses them — `null`
645
+ * is authoritative in both of those cases: if this returns `null`,
646
+ * `discoverRunner` returns `{ ok: false }` for the same command, always.
647
+ * It is **not** authoritative the other direction — a non-null result names
648
+ * which profile a command's shape matches, not that `discoverRunner` will
649
+ * ultimately accept it. A matched profile can still refuse on the full
650
+ * argument list (`vitest` with no `run`, a command that already configures
651
+ * its own `--reporter`), which needs the complete tokenized args this
652
+ * predicate deliberately does not evaluate — that is a second, more
653
+ * specific refusal reached only by actually calling `discoverRunner`. Read
654
+ * a non-null result as "not obviously unsupported", not as "guaranteed to
655
+ * run".
656
+ *
657
+ * Use `supportedRunnerExamples()` to render the same "supported, and each
658
+ * declared explicitly: ..." list `discoverRunner`'s own generic refusal
659
+ * uses, so a handshake's up-front refusal and this collector's own
660
+ * run-time refusal are guaranteed to name the same runners rather than
661
+ * being two strings that happen to agree today.
662
+ */
663
+ export function matchRunner(rawCommand) {
664
+ const tokenized = tokenizeCommand(rawCommand);
665
+ if (!tokenized.ok)
666
+ return null;
667
+ const { command, args } = tokenized;
668
+ const baseName = command.split(/[\\/]/).pop() ?? command;
669
+ if (isNpxWrapped(baseName))
670
+ return null;
671
+ const profile = findMatchingProfile(baseName, args);
672
+ return profile === undefined ? null : { kind: profile.kind, declaredAs: profile.declaredAs };
673
+ }
541
674
  /**
542
675
  * Exported on its own so a caller can validate a configured command before
543
676
  * ever attempting to spawn it — the same "refuse atomically before anything
@@ -563,7 +696,7 @@ export function discoverRunner(rawCommand) {
563
696
  // the caller wrote. The runner's own binary is one path away
564
697
  // (`node_modules/.bin/jest`), so the refusal names the fix rather than
565
698
  // guessing at one.
566
- if (baseName === "npx" || baseName === "npx.cmd") {
699
+ if (isNpxWrapped(baseName)) {
567
700
  return {
568
701
  ok: false,
569
702
  reason: `"${rawCommand}" runs the runner through npx, whose own arguments cannot be told apart from the runner's ` +
@@ -571,12 +704,14 @@ export function discoverRunner(rawCommand) {
571
704
  "`node_modules/.bin/jest ...` or `node_modules/.bin/vitest run ...`.",
572
705
  };
573
706
  }
574
- const profile = PROFILES.find((candidate) => candidate.matches(baseName, args));
707
+ const profile = findMatchingProfile(baseName, args);
575
708
  if (profile === undefined) {
576
709
  return {
577
710
  ok: false,
578
711
  reason: `"${rawCommand}" names no runner this collector observes. Supported, and each declared explicitly: ` +
579
- `\`node ... --test ...\`, \`jest ...\`, \`vitest run ...\`. ` +
712
+ `${supportedRunnerExamples()
713
+ .map((example) => `\`${example}\``)
714
+ .join(", ")}. ` +
580
715
  "A command is never matched by sniffing package.json or a lockfile.",
581
716
  };
582
717
  }
@@ -660,6 +795,138 @@ function parseCorrelationDiagnostic(message) {
660
795
  return null;
661
796
  return { kind: kind, value: value.trim() };
662
797
  }
798
+ /**
799
+ * A single-line unittest `-v` result: `test_name (module.Class.test_name) ...
800
+ * <outcome>`. Anchored at both ends deliberately -- a traceback header line
801
+ * later in the same stream (`ERROR: test_name (module.Class.test_name)`)
802
+ * has a third token before the parenthesised name and must NOT match this.
803
+ */
804
+ const UNITTEST_RESULT_LINE = /^(\S+) \(([\w.]+)\) \.\.\. (.+)$/;
805
+ /**
806
+ * The header-only line CPython's own `TextTestResult.getDescription` emits
807
+ * for a test with a docstring -- the qualified name alone, with the outcome
808
+ * (and the docstring's own first line) arriving on the *next* line instead
809
+ * (measured directly; see `createUnittestResultParser`'s own doc comment).
810
+ */
811
+ const UNITTEST_HEADER_ONLY_LINE = /^(\S+) \(([\w.]+)\)$/;
812
+ /** The tail of a docstring-continuation line: arbitrary prose, then the same ` ... <outcome>` suffix `UNITTEST_RESULT_LINE` reads directly. */
813
+ const UNITTEST_CONTINUATION_LINE = /\.\.\. (.+)$/;
814
+ /** unittest's own outcome word for a declared, known-broken test (`@unittest.expectedFailure`) that failed as expected -- the same fact pytest's own `xfail` marker states, mapped to the same `skipReason` the pytest reporter already uses for it (RT-107): declared as absent rather than switched off, not a plain skip. */
815
+ const UNITTEST_EXPECTED_FAILURE = "expected failure";
816
+ function unittestSkipReason(outcome) {
817
+ if (outcome === UNITTEST_EXPECTED_FAILURE)
818
+ return "not-implemented";
819
+ // `skipped 'reason text'` -- always a declared skip in unittest (there is
820
+ // no unittest equivalent of pytest's runtime `pytest.skip()` distinct from
821
+ // `@unittest.skip`; both spellings produce this exact outcome word), so
822
+ // `disabled` is read, not guessed.
823
+ if (outcome.startsWith("skipped"))
824
+ return "disabled";
825
+ return null;
826
+ }
827
+ /**
828
+ * Parses CPython's own `unittest.runner.TextTestResult` verbose (`-v`)
829
+ * output into the same `NodeTestEvent` shape every other profile's reporter
830
+ * emits as real NDJSON -- so `createEventTranslator` never has to know this
831
+ * event did not arrive as JSON. See the file-level doc comment ("unittest is
832
+ * the one profile...") for why a reporter is not possible here at all.
833
+ *
834
+ * **Measured directly against a real `python -m unittest -v` run**, not
835
+ * assumed from documentation:
836
+ *
837
+ * ```
838
+ * test_pass (test_sample.TestSample.test_pass) ... ok
839
+ * test_fail (test_sample.TestSample.test_fail) ... FAIL
840
+ * test_error (test_sample.TestSample.test_error) ... ERROR
841
+ * test_skip (test_sample.TestSample.test_skip) ... skipped 'not ready'
842
+ * test_xfail (test_sample.TestSample.test_xfail) ... expected failure
843
+ * test_xpass (test_sample.TestSample.test_xpass) ... unexpected success
844
+ * ```
845
+ *
846
+ * and, for a test with a docstring, split across two lines instead of one
847
+ * (`getDescription` returns `"%s\n%s" % (str(test), doc_first_line)` when a
848
+ * docstring is present, `str(test)` alone otherwise):
849
+ *
850
+ * ```
851
+ * test_with_doc (test_doc.TestDoc.test_with_doc)
852
+ * This is a docstring. ... ok
853
+ * ```
854
+ *
855
+ * A header-only line is trusted for at most one line of lookahead: whatever
856
+ * arrives next either completes it (a docstring's first line, ending in
857
+ * ` ... <outcome>`) or does not, and either way the header is then
858
+ * discarded -- never left pending indefinitely waiting for a continuation
859
+ * that a stray print from the test body or an unrecognised outcome word
860
+ * might otherwise be mistaken for. A line the parser cannot place at all
861
+ * (the `======`/`----` banners, a traceback body, `Ran N tests...`, `OK`,
862
+ * `FAILED (...)`, or the test process's own stdout) is silently ignored --
863
+ * the same "unparseable output is ordinary and expected" rule every
864
+ * NDJSON-based profile already applies to its own noise.
865
+ *
866
+ * **What this deliberately does not attempt.** unittest's per-test line
867
+ * carries a qualified name only, never a file or line number -- those
868
+ * appear solely in the traceback section printed after every test in the
869
+ * run has already finished, under a `======`-delimited header repeating the
870
+ * test's own description. Re-associating that traceback with the correct
871
+ * earlier result, reliably, across a run with many tests (some sharing a
872
+ * class or method name across modules), is exactly the kind of inference
873
+ * precision-over-recall exists to forbid -- so no attempt is made, every
874
+ * `sourceLocation` this parser produces is null, and every FAILED/ERROR
875
+ * carries no `error` detail either, rather than one guessed from prose.
876
+ * `expected failure`/`unexpected success` fold into `TEST_SKIPPED`/
877
+ * `TEST_PASSED` respectively -- the same choice the pytest reporter already
878
+ * made for `xfail`/`xpass`, not a new one invented here. An outcome word
879
+ * this parser has never measured (a future CPython addition) still gets a
880
+ * `TEST_STARTED` -- the test did start -- but no paired result, on the same
881
+ * "report nothing rather than guess" rule.
882
+ */
883
+ export function createUnittestResultParser() {
884
+ let pendingHeader = null;
885
+ function eventsFor(header, outcome) {
886
+ const start = { type: "test:start", data: { name: header.name, qualifiedName: header.qualifiedName } };
887
+ const skipReason = unittestSkipReason(outcome);
888
+ if (skipReason !== null) {
889
+ return [start, { type: "test:pass", data: { name: header.name, qualifiedName: header.qualifiedName, skip: true, skipReason } }];
890
+ }
891
+ if (outcome === "ok" || outcome === "unexpected success") {
892
+ return [start, { type: "test:pass", data: { name: header.name, qualifiedName: header.qualifiedName } }];
893
+ }
894
+ if (outcome === "FAIL" || outcome === "ERROR") {
895
+ return [start, { type: "test:fail", data: { name: header.name, qualifiedName: header.qualifiedName } }];
896
+ }
897
+ return [start];
898
+ }
899
+ return {
900
+ feed(line) {
901
+ const direct = UNITTEST_RESULT_LINE.exec(line);
902
+ if (direct !== null) {
903
+ pendingHeader = null;
904
+ const [, name, qualifiedName, outcome] = direct;
905
+ return eventsFor({ name: name, qualifiedName: qualifiedName }, outcome);
906
+ }
907
+ if (pendingHeader !== null) {
908
+ // One line of lookahead only -- consumed here whether or not it
909
+ // actually completes the pending header, so a header that never
910
+ // gets its continuation cannot swallow an unrelated later line.
911
+ const header = pendingHeader;
912
+ pendingHeader = null;
913
+ const continuation = UNITTEST_CONTINUATION_LINE.exec(line);
914
+ if (continuation !== null) {
915
+ return eventsFor(header, continuation[1]);
916
+ }
917
+ // Falls through: this same line might still be the NEXT test's own
918
+ // header-only line rather than junk, so it still gets checked below.
919
+ }
920
+ const headerOnly = UNITTEST_HEADER_ONLY_LINE.exec(line);
921
+ if (headerOnly !== null) {
922
+ const [, name, qualifiedName] = headerOnly;
923
+ pendingHeader = { name: name, qualifiedName: qualifiedName };
924
+ return [];
925
+ }
926
+ return [];
927
+ },
928
+ };
929
+ }
663
930
  export function createEventTranslator(emit, service, processId) {
664
931
  let pending = null;
665
932
  let testsObserved = 0;
@@ -945,44 +1212,57 @@ export function createTestRunnerCollector(options) {
945
1212
  sourceLocation: null,
946
1213
  });
947
1214
  };
948
- completion = pumpLines(managed, (line) => {
949
- if (line.trim() === "")
950
- return;
951
- let parsed;
952
- try {
953
- parsed = JSON.parse(line);
954
- }
955
- catch {
956
- // A non-JSON line on stdout means something other than this
957
- // collector's own reporter wrote it (e.g. the process under
958
- // test's own console.log) -- ignored rather than treated as a
959
- // parse failure of the reporter stream itself, which is a real,
960
- // expected, ordinary case for any real test suite.
961
- return;
962
- }
963
- // **The handshake, checked before anything is believed.** A
964
- // reporter declares which envelope it speaks; a mismatch, or an
965
- // event arriving with no declaration at all, means what follows
966
- // cannot be trusted to mean what this translator will read it as.
967
- // COLLECTOR_ERROR and then silence, never confident wrong evidence.
968
- // The gate sees every line, not only translatable ones: a
969
- // handshake is not a `NodeTestEvent` and would otherwise be
970
- // dropped as noise before it could be read.
971
- if (!isNodeTestEvent(parsed)) {
972
- const noise = gate.inspect(parsed, false);
973
- if (noise.kind === "refuse")
974
- reportEnvelopeError(noise.reason);
975
- return;
976
- }
977
- const verdict = gate.inspect(parsed, true);
978
- if (verdict.kind === "refuse") {
979
- reportEnvelopeError(verdict.reason);
980
- return;
981
- }
982
- if (verdict.kind !== "event")
983
- return;
984
- activeTranslator.handle(parsed);
985
- }).then(() => {
1215
+ // **unittest never speaks the NDJSON envelope** (see this file's own
1216
+ // top doc comment): there is no reporter to gate, only a text parser.
1217
+ // Every other profile shares the one JSON-envelope path below.
1218
+ const onLine = discovery.kind === "unittest"
1219
+ ? (() => {
1220
+ const unittestParser = createUnittestResultParser();
1221
+ return (line) => {
1222
+ for (const event of unittestParser.feed(line)) {
1223
+ activeTranslator.handle(event);
1224
+ }
1225
+ };
1226
+ })()
1227
+ : (line) => {
1228
+ if (line.trim() === "")
1229
+ return;
1230
+ let parsed;
1231
+ try {
1232
+ parsed = JSON.parse(line);
1233
+ }
1234
+ catch {
1235
+ // A non-JSON line on stdout means something other than this
1236
+ // collector's own reporter wrote it (e.g. the process under
1237
+ // test's own console.log) -- ignored rather than treated as a
1238
+ // parse failure of the reporter stream itself, which is a real,
1239
+ // expected, ordinary case for any real test suite.
1240
+ return;
1241
+ }
1242
+ // **The handshake, checked before anything is believed.** A
1243
+ // reporter declares which envelope it speaks; a mismatch, or an
1244
+ // event arriving with no declaration at all, means what follows
1245
+ // cannot be trusted to mean what this translator will read it as.
1246
+ // COLLECTOR_ERROR and then silence, never confident wrong evidence.
1247
+ // The gate sees every line, not only translatable ones: a
1248
+ // handshake is not a `NodeTestEvent` and would otherwise be
1249
+ // dropped as noise before it could be read.
1250
+ if (!isNodeTestEvent(parsed)) {
1251
+ const noise = gate.inspect(parsed, false);
1252
+ if (noise.kind === "refuse")
1253
+ reportEnvelopeError(noise.reason);
1254
+ return;
1255
+ }
1256
+ const verdict = gate.inspect(parsed, true);
1257
+ if (verdict.kind === "refuse") {
1258
+ reportEnvelopeError(verdict.reason);
1259
+ return;
1260
+ }
1261
+ if (verdict.kind !== "event")
1262
+ return;
1263
+ activeTranslator.handle(parsed);
1264
+ };
1265
+ completion = pumpLines(managed, onLine).then(() => {
986
1266
  // The very last test's result has no "next test:start" or
987
1267
  // no-`file` diagnostic to flush it -- node's own suite-level
988
1268
  // summary diagnostics almost always follow, but relying on that
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner-collector.js","sourceRoot":"","sources":["../src/test-runner-collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-runner-collector.js","sourceRoot":"","sources":["../src/test-runner-collector.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descryy/runtime-test-runner",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "Test-runner observation (plan \u00a717): discovery, start, TEST_STARTED/PASSED/FAILED, trace capture, source mapping, not-run disclosure. Three runners -- node:test, Jest, Vitest -- each observed through its own structured reporter API writing one shared envelope; no TAP or text scraping anywhere.",
6
6
  "license": "UNLICENSED",
@@ -26,8 +26,8 @@
26
26
  "dependencies": {
27
27
  "@descryy/runtime-contracts": "0.2.0",
28
28
  "@descryy/runtime-backend-observation": "0.2.0",
29
- "@descryy/runtime-controller": "0.2.0",
30
- "@descryy/runtime-graph-correlator": "0.2.0",
31
- "@descryy/core": "0.3.0"
29
+ "@descryy/runtime-controller": "0.2.1",
30
+ "@descryy/runtime-graph-correlator": "0.3.0",
31
+ "@descryy/core": "0.4.0"
32
32
  }
33
33
  }