Hubert Gancarczyk
e8536076de
test(flow,cli,mcp): close the coverage gaps each defect walked through
...
- The JUnit reporter is PARSED, not grepped. Every assertion was `toContain` or
a regex, which passes wherever in the document a fragment sits — which is
exactly how an `<error>` in a position no schema allows survived the suite.
`flow.test.ts` validates the document it actually writes, too.
- The MCP failure block gets a verbatim pin. The section was entirely
`toContain`, so an injected extra line or a silently dropped slot survived.
- `inlineRole` — the headline MCP change in this diff — was unreachable by the
suite: the two near-miss tests set `secretTyped` (killing the flag it sits
behind) and passed no ctx. Both arms are now driven, and `MAX_RENDER_FAILURES`
has a fixture that reaches it.
- The other new code the suite never executed: `wireTimestamp` (load-bearing —
removing it makes `buildJUnitXml` throw), `resolvedPlatform`, the JUnit body's
`expected:`/`actual:`/`match:`/`reads:`/`device:` slots, and
`sink.error = undefined`, the only stale-error clear, which now has a test
that recovers after a read failure.
- The "unclassified" test asserted nothing: its body was `if (failure) { … }`,
vacuous when the failure is absent — and its fixture produces a PASSING step,
so the guard never opened. `unclassified` is now driven at the assembler, the
site that decides it, with a literal pin.
- `expect(indexOf(a)).toBeLessThan(indexOf(b))` is satisfied by `a` being absent
entirely (-1 < N); presence is asserted first.
The nested-`flow-execute` secret case the harness could not express is covered
by the device-scoped latch's own two-run test.
2026-08-24 11:00:35 +02:00
..
2026-08-19 23:06:48 +02:00
2026-08-19 23:06:48 +02:00
2026-08-20 15:24:28 +02:00
2026-07-07 10:05:42 +02:00
2026-08-24 11:00:35 +02:00
2026-08-21 16:51:51 +02:00
2026-08-21 12:01:10 +02:00
2026-08-19 23:06:48 +02:00
2026-08-19 23:06:48 +02:00
2026-08-19 23:06:48 +02:00
2026-08-21 12:01:10 +02:00
2026-07-15 07:55:31 +02:00
2026-08-10 11:51:45 +02:00
2026-07-01 14:59:37 +02:00
2026-05-11 11:39:10 +02:00
2026-05-27 16:24:31 +02:00
2026-08-19 23:06:48 +02:00
2026-08-21 17:34:59 +02:00
2026-05-12 14:21:09 +02:00
2026-06-22 20:31:45 +02:00
2026-08-19 23:06:48 +02:00
2026-08-19 23:06:48 +02:00
2026-05-12 14:21:09 +02:00
2026-08-21 17:34:59 +02:00
2026-07-01 14:59:37 +02:00
2026-07-03 16:19:23 +02:00
2026-08-21 17:34:59 +02:00
2026-07-10 12:51:24 +02:00
2026-07-07 16:29:22 +02:00
2026-07-01 14:59:37 +02:00
2026-06-16 15:46:41 +02:00
2026-08-19 23:06:48 +02:00
2026-07-13 17:15:01 +02:00
2026-08-23 22:18:26 +02:00
2026-08-19 23:06:48 +02:00
2026-05-27 16:24:07 +02:00
2026-08-17 21:50:21 +02:00
2026-05-27 16:24:07 +02:00
2026-06-22 20:31:45 +02:00
2026-07-08 17:22:31 +02:00
2026-08-21 12:00:50 +02:00
2026-08-21 12:00:50 +02:00
2026-08-21 12:00:50 +02:00
2026-07-10 12:51:24 +02:00
2026-05-11 11:39:10 +02:00
2026-06-15 14:32:06 +02:00
2026-07-22 13:53:32 +02:00
2026-06-15 11:03:23 +02:00
2026-07-31 15:36:36 +02:00
2026-06-15 15:31:51 +02:00
2026-06-15 11:03:23 +02:00
2026-08-21 12:00:50 +02:00
2026-06-15 11:03:23 +02:00
2026-06-15 11:03:23 +02:00
2026-06-15 11:03:23 +02:00
2026-08-19 23:06:48 +02:00
2026-06-17 12:20:55 +02:00
2026-07-02 16:42:10 +02:00
2026-07-13 17:15:01 +02:00
2026-06-15 11:03:23 +02:00
2026-06-15 11:03:23 +02:00
2026-06-15 11:03:23 +02:00
2026-06-17 12:20:55 +02:00
2026-06-15 15:57:45 +02:00
2026-08-03 11:09:11 +02:00
2026-07-31 15:36:36 +02:00
2026-06-25 21:16:03 +02:00
2026-08-21 12:01:10 +02:00
2026-07-22 13:53:32 +02:00
2026-07-06 17:12:20 +02:00
2026-07-03 16:19:16 +02:00
2026-05-11 11:39:10 +02:00
2026-07-13 17:15:01 +02:00
2026-04-28 15:32:39 +02:00
2026-05-27 11:46:12 +02:00
2026-07-13 17:15:01 +02:00
2026-05-26 10:07:04 +02:00
2026-05-11 11:39:10 +02:00
2026-08-21 14:46:49 +02:00
2026-07-01 14:59:37 +02:00
2026-06-22 20:31:45 +02:00
2026-08-21 17:34:59 +02:00
2026-07-22 13:53:32 +02:00
2026-07-07 13:36:27 +02:00
2026-07-10 11:52:28 +02:00
2026-08-10 10:54:58 +02:00
2026-07-10 12:29:48 +02:00
2026-08-19 23:06:48 +02:00
2026-06-19 18:22:34 +02:00
2026-04-28 15:15:03 +02:00
2026-07-23 07:44:26 +02:00
2026-08-13 19:40:32 +02:00
2026-07-10 12:29:48 +02:00
2026-08-10 11:51:45 +02:00
2026-08-10 10:54:58 +02:00
2026-06-03 17:44:15 +02:00
2026-08-10 11:51:45 +02:00
2026-07-23 21:14:37 +02:00
2026-08-10 17:09:16 +02:00
2026-08-10 10:54:58 +02:00
2026-06-01 17:15:12 +02:00
2026-08-19 23:06:48 +02:00
2026-06-17 12:20:55 +02:00
2026-08-17 15:01:23 +02:00
2026-07-31 15:14:03 +02:00
2026-07-07 16:29:22 +02:00
2026-08-17 21:06:26 +02:00
2026-08-17 21:06:26 +02:00
2026-07-12 13:42:23 +02:00
2026-08-19 23:06:48 +02:00
2026-07-20 19:26:33 +02:00
2026-08-17 15:01:23 +02:00
2026-08-17 15:01:23 +02:00
2026-07-10 12:51:24 +02:00
2026-08-21 16:51:51 +02:00
2026-08-17 15:01:23 +02:00
2026-08-17 15:01:23 +02:00
2026-08-17 21:06:26 +02:00
2026-07-22 13:53:32 +02:00
2026-07-01 19:57:56 +02:00
2026-08-19 23:06:48 +02:00
2026-07-01 19:57:56 +02:00
2026-06-25 13:29:10 +02:00
2026-07-01 11:02:33 +02:00
2026-07-20 17:05:16 +02:00
2026-06-24 11:22:57 +02:00
2026-07-13 17:15:01 +02:00
2026-07-13 17:15:01 +02:00
2026-07-23 21:14:37 +02:00
2026-08-19 23:06:48 +02:00
2026-08-17 21:06:26 +02:00
2026-08-19 23:06:48 +02:00
2026-08-17 21:06:26 +02:00
2026-08-19 23:06:48 +02:00
2026-07-03 16:45:29 +02:00
2026-07-03 16:45:29 +02:00
2026-07-03 16:45:29 +02:00
2026-07-31 15:14:03 +02:00
2026-08-10 10:54:58 +02:00
2026-08-10 10:54:58 +02:00
2026-08-10 10:54:58 +02:00
2026-08-10 10:54:58 +02:00
2026-08-10 10:54:58 +02:00
2026-08-17 21:06:26 +02:00
2026-06-01 15:04:25 +02:00
2026-07-21 16:56:31 +02:00
2026-08-21 16:51:51 +02:00
2026-07-01 19:57:56 +02:00
2026-07-01 19:57:56 +02:00
2026-07-01 19:57:56 +02:00
2026-08-17 21:25:51 +02:00
2026-07-01 19:57:56 +02:00
2026-06-24 11:22:57 +02:00
2026-07-07 13:36:27 +02:00
2026-07-22 16:56:54 +02:00
2026-07-12 13:42:23 +02:00
2026-08-11 17:18:11 +02:00
2026-07-12 13:42:23 +02:00
2026-07-03 16:19:31 +02:00
2026-08-10 10:54:58 +02:00
2026-07-02 17:37:30 +02:00
2026-08-21 17:34:59 +02:00
2026-07-01 14:59:37 +02:00
2026-08-19 23:06:48 +02:00
2026-08-21 14:47:00 +02:00
2026-07-02 12:40:19 +02:00
2026-06-03 22:28:20 +02:00
2026-06-01 15:04:25 +02:00
2026-08-17 13:37:49 +02:00
2026-08-03 11:16:29 +02:00
2026-07-01 14:59:37 +02:00
2026-07-01 14:59:37 +02:00
2026-07-13 22:45:06 +02:00
2026-08-17 18:19:39 +02:00
2026-07-22 08:47:52 +02:00
2026-06-24 21:00:54 +02:00
2026-07-31 15:14:03 +02:00
2026-08-17 21:06:26 +02:00
2026-08-19 23:06:48 +02:00
2026-07-13 17:15:01 +02:00
2026-07-22 13:53:32 +02:00
2026-08-19 23:06:48 +02:00
2026-06-24 14:03:57 +02:00
2026-08-19 23:06:48 +02:00
2026-06-01 15:04:25 +02:00
2026-08-19 23:06:48 +02:00
2026-08-19 23:06:48 +02:00
2026-08-13 19:40:32 +02:00
2026-07-07 16:29:22 +02:00
2026-08-19 23:06:48 +02:00
2026-07-01 14:59:37 +02:00
2026-05-12 14:21:09 +02:00
2026-07-03 16:19:16 +02:00
2026-07-08 12:24:19 +02:00
2026-08-19 23:06:48 +02:00
2026-06-17 15:22:04 +02:00
2026-07-13 16:56:49 +02:00
2026-07-03 16:19:29 +02:00
2026-07-03 16:19:29 +02:00
2026-07-03 16:19:29 +02:00
2026-07-01 11:02:33 +02:00
2026-06-22 20:31:45 +02:00
2026-08-19 23:06:48 +02:00
2026-08-20 16:32:22 +02:00
2026-06-22 20:31:45 +02:00
2026-06-22 20:31:45 +02:00
2026-06-22 20:31:45 +02:00
2026-06-22 20:31:45 +02:00
2026-06-22 20:31:45 +02:00
2026-08-17 15:01:23 +02:00
2026-08-17 15:01:23 +02:00
2026-06-22 20:31:45 +02:00
2026-07-20 17:05:16 +02:00
2026-06-22 20:31:45 +02:00
2026-06-22 20:31:45 +02:00
2026-06-22 20:31:45 +02:00
2026-07-07 10:05:42 +02:00
2026-06-26 16:40:27 +02:00
2026-07-23 21:14:37 +02:00
2026-08-17 18:19:39 +02:00
2026-08-19 23:06:48 +02:00
2026-06-25 13:29:10 +02:00