Skip to main content
Version: Current

StorePropertyTckOptions

@rotorsoft/act-root


@rotorsoft/act-root / act-tck/src / StorePropertyTckOptions

Type Alias: StorePropertyTckOptions

StorePropertyTckOptions = object

Defined in: libs/act-tck/src/store-property-tck.ts:53

Property-based contract for the store-level invariants the drain pipeline depends on โ€” commit version monotonicity, claim/lease no-leak, watermark monotonicity, and block exclusion. These ran only against InMemoryStore before ACT-982; running them against the durable adapters too is the only way to catch a divergence the example-based TCK cases miss.

Each predicate resets the store (drop + seed) so randomized runs are isolated. Durable adapters should pass a reduced numRuns and their own dedicated schema/file so a parallel test worker can't clobber the table.

Propertiesโ€‹

factoryโ€‹

factory: () => Store | Promise<Store>

Defined in: libs/act-tck/src/store-property-tck.ts:57

Produces the store under test (created once, reset between runs).

Returnsโ€‹

Store | Promise<Store>


nameโ€‹

name: string

Defined in: libs/act-tck/src/store-property-tck.ts:55

Adapter name for the describe block.


numRuns?โ€‹

optional numRuns?: number

Defined in: libs/act-tck/src/store-property-tck.ts:59

fast-check runs per property. Default 100; lower for durable adapters.


timeoutMs?โ€‹

optional timeoutMs?: number

Defined in: libs/act-tck/src/store-property-tck.ts:71

Per-property timeout in milliseconds. Default 5000, matching vitest.

Every run of a property is a full reset plus a dozen or more round trips, so against a real database the wall time is dominated by I/O and by whatever else the machine is doing. Vitest's default is comfortable in isolation and not under a parallel suite sharing one server, which showed up as this file intermittently timing out rather than failing an assertion. Durable adapters should raise it; the in-memory store has no reason to.