prelude

@prelude/testing · private, not published

SourceAPI reference

@prelude/testing

Workspace-internal (private, not published) helpers for property-style tests: a seeded pseudo-random generator and checkTrace, which generates operation traces, replays them against a data structure and its reference model, and on failure shrinks the trace to a minimal reproduction that is reported together with the seed.

Usage

Not published; workspace packages depend on it as a devDependency (pnpm add -D @prelude/testing@workspace:*).

import * as Testing from '@prelude/testing'

await Testing.checkTrace({
  seed: 42,
  trials: 100,
  length: 40,
  op: rng => ({ key: rng.int(8), remove: rng.bool(0.3) }),
  run: ops => {
    // rebuild the structure and its model from scratch, applying every op and
    // checking invariants after each one; throw on the first violation
  }
})

Set SLOW_TESTS=<factor> (for example SLOW_TESTS=20) to multiply the trial counts; the scheduled stress workflow does this weekly.

License

This package is dedicated to the public domain under CC0 1.0.