✖ isRunId accepts the run id shape and nothing else (2.621121ms)
✔ a missing data root or runs directory lists nothing (2.873428ms)
✔ runs as a regular file lists nothing, as before (0.877432ms)
✔ listRunIds keeps r- names only, sorted oldest first (1.2193ms)
✔ listRunRecords returns each result, or null for an incomplete or unreadable one (4.17104ms)
✔ readRunRecord returns documents and artifacts in directory order (2.167047ms)
✔ readRunRecord is null for a missing run, a dangling link or a file (1.610572ms)
✔ readRunRecord and readRunDocument refuse an invalid run id before touching the disk (1.237909ms)
✔ readRunDocument reads only the three run documents (1.490464ms)
✔ a link inside the data root is followed (2.047317ms)
✔ a data root that is itself a link is trusted as configured (1.310886ms)
✔ a run directory linked out of the data root is never read (1.375476ms)
✔ a document linked out of the data root reads as null (1.919519ms)
✔ a runs directory linked out of the data root refuses (1.177495ms)
✔ a relative link that climbs out of the data root refuses (0.809767ms)
✔ a sibling whose name starts with the data root's name is outside it (0.918443ms)
✔ a link loop refuses instead of reading as missing (1.269903ms)
✔ an unreadable runs directory refuses instead of listing nothing (1.13428ms)
✔ an unreadable run directory refuses instead of reading as missing (1.208613ms)
✔ a link to the data root's parent is outside it (1.309226ms)
✔ listRunIds sorts whatever order the directory returns (1.665016ms)
✔ the readers write nothing (4.268303ms)
✔ no pointer is null (2.482055ms)
✔ the pointer release.sh writes reads back (1.622475ms)
✔ a pointer that isn't the version 1 shape refuses with exit 2 (2.093312ms)
✔ a pointer that is a directory refuses with exit 4 (1.37517ms)
✔ a state file linked out of the data root refuses (1.304846ms)
✔ a state directory linked out of the data root refuses (0.707381ms)
✔ a missing log is empty (0.514771ms)
✔ the log reads oldest first and counts malformed lines (1.170055ms)
✔ last must be a positive integer (0.690868ms)
✔ the state readers write nothing (1.127808ms)
✔ list prints each run in the established format (111.188746ms)
✔ show prints the run in the established format (107.486029ms)
✔ show of a missing run and an invalid id exit 4 as before (143.908228ms)
✔ list and show refuse a runs directory linked out of the data root (191.94812ms)
✔ show refuses a run linked out of the data root; list reports it unknown (212.7919ms)
ℹ tests 37
ℹ suites 0
ℹ pass 36
ℹ fail 1
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 858.033888

✖ failing tests:

test at packages/runs/tests/runs.test.mjs:13:1
✖ isRunId accepts the run id shape and nothing else (2.621121ms)
  AssertionError [ERR_ASSERTION]: r-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  
  true !== false
  
      at TestContext.<anonymous> (file:///home/jwoltje/darkwing-scratch/r56a/mutwt/packages/runs/tests/runs.test.mjs:16:12)
      at Test.runInAsyncScope (node:async_hooks:226:14)
      at Test.run (node:internal/test_runner/test:1402:25)
      at Test.start (node:internal/test_runner/test:1262:17)
      at startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) {
    generatedMessage: false,
    code: 'ERR_ASSERTION',
    actual: true,
    expected: false,
    operator: 'strictEqual',
    diff: 'simple'
  }
