@typeonce/effect-machine 0.3.0 → 0.5.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/README.md +410 -17
- package/dist/Machine.d.ts +1191 -510
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js +371 -565
- package/dist/Machine.js.map +1 -1
- package/dist/internal/machine/activities.d.ts +57 -0
- package/dist/internal/machine/activities.d.ts.map +1 -0
- package/dist/internal/machine/activities.js +49 -0
- package/dist/internal/machine/activities.js.map +1 -0
- package/dist/internal/machine/atom.d.ts +69 -0
- package/dist/internal/machine/atom.d.ts.map +1 -0
- package/dist/{AtomMachine.js → internal/machine/atom.js} +20 -95
- package/dist/internal/machine/atom.js.map +1 -0
- package/dist/internal/machine/cluster.d.ts +63 -0
- package/dist/internal/machine/cluster.d.ts.map +1 -0
- package/dist/{ClusterMachine.js → internal/machine/cluster.js} +15 -119
- package/dist/internal/machine/cluster.js.map +1 -0
- package/dist/internal/machine/command.d.ts +16 -0
- package/dist/internal/machine/command.d.ts.map +1 -0
- package/dist/internal/machine/command.js +45 -0
- package/dist/internal/machine/command.js.map +1 -0
- package/dist/internal/machine/commandRuntime.d.ts +13 -0
- package/dist/internal/machine/commandRuntime.d.ts.map +1 -0
- package/dist/internal/machine/commandRuntime.js +16 -0
- package/dist/internal/machine/commandRuntime.js.map +1 -0
- package/dist/internal/{machineModel.d.ts → machine/configuration.d.ts} +12 -61
- package/dist/internal/machine/configuration.d.ts.map +1 -0
- package/dist/internal/{machineModel.js → machine/configuration.js} +250 -545
- package/dist/internal/machine/configuration.js.map +1 -0
- package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +8 -8
- package/dist/internal/machine/errors.d.ts.map +1 -0
- package/dist/internal/{machineErrors.js → machine/errors.js} +8 -8
- package/dist/internal/machine/errors.js.map +1 -0
- package/dist/internal/machine/executionPlan.d.ts +49 -0
- package/dist/internal/machine/executionPlan.d.ts.map +1 -0
- package/dist/internal/machine/executionPlan.js +676 -0
- package/dist/internal/machine/executionPlan.js.map +1 -0
- package/dist/internal/machine/invocation.d.ts +23 -0
- package/dist/internal/machine/invocation.d.ts.map +1 -0
- package/dist/internal/machine/invocation.js +77 -0
- package/dist/internal/machine/invocation.js.map +1 -0
- package/dist/internal/machine/machine.d.ts +183 -0
- package/dist/internal/machine/machine.d.ts.map +1 -0
- package/dist/internal/machine/machine.js +552 -0
- package/dist/internal/machine/machine.js.map +1 -0
- package/dist/internal/machine/planner.d.ts +182 -0
- package/dist/internal/machine/planner.d.ts.map +1 -0
- package/dist/internal/machine/planner.js +1082 -0
- package/dist/internal/machine/planner.js.map +1 -0
- package/dist/internal/{machineProcess.d.ts → machine/process.d.ts} +11 -5
- package/dist/internal/machine/process.d.ts.map +1 -0
- package/dist/internal/machine/process.js +498 -0
- package/dist/internal/machine/process.js.map +1 -0
- package/dist/internal/machine/protocol.d.ts +34 -0
- package/dist/internal/machine/protocol.d.ts.map +1 -0
- package/dist/internal/machine/protocol.js +182 -0
- package/dist/internal/machine/protocol.js.map +1 -0
- package/dist/internal/machine/readiness.d.ts +4 -0
- package/dist/internal/machine/readiness.d.ts.map +1 -0
- package/dist/internal/machine/readiness.js +2 -0
- package/dist/internal/machine/readiness.js.map +1 -0
- package/dist/internal/machine/runtime.d.ts +255 -0
- package/dist/internal/machine/runtime.d.ts.map +1 -0
- package/dist/internal/machine/runtime.js +1489 -0
- package/dist/internal/machine/runtime.js.map +1 -0
- package/dist/internal/machine/serialization.d.ts +14 -0
- package/dist/internal/machine/serialization.d.ts.map +1 -0
- package/dist/internal/machine/serialization.js +338 -0
- package/dist/internal/machine/serialization.js.map +1 -0
- package/dist/internal/machine/stateDefinition.d.ts +15 -0
- package/dist/internal/machine/stateDefinition.d.ts.map +1 -0
- package/dist/internal/machine/stateDefinition.js +210 -0
- package/dist/internal/machine/stateDefinition.js.map +1 -0
- package/dist/internal/machine/symbols.d.ts +3 -0
- package/dist/internal/machine/symbols.d.ts.map +1 -0
- package/dist/internal/machine/symbols.js +3 -0
- package/dist/internal/machine/symbols.js.map +1 -0
- package/dist/internal/machine/topology.d.ts +98 -0
- package/dist/internal/machine/topology.d.ts.map +1 -0
- package/dist/internal/machine/topology.js +347 -0
- package/dist/internal/machine/topology.js.map +1 -0
- package/dist/internal/testing/machine/arbitrary.d.ts +36 -0
- package/dist/internal/testing/machine/arbitrary.d.ts.map +1 -0
- package/dist/internal/testing/machine/arbitrary.js +68 -0
- package/dist/internal/testing/machine/arbitrary.js.map +1 -0
- package/dist/internal/testing/machine/exploration.d.ts +30 -0
- package/dist/internal/testing/machine/exploration.d.ts.map +1 -0
- package/dist/internal/testing/machine/exploration.js +237 -0
- package/dist/internal/testing/machine/exploration.js.map +1 -0
- package/dist/internal/testing/machine/finiteModel.d.ts +322 -0
- package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -0
- package/dist/internal/testing/machine/finiteModel.js +976 -0
- package/dist/internal/testing/machine/finiteModel.js.map +1 -0
- package/dist/internal/testing/machine/invariant.d.ts +31 -0
- package/dist/internal/testing/machine/invariant.d.ts.map +1 -0
- package/dist/internal/testing/machine/invariant.js +214 -0
- package/dist/internal/testing/machine/invariant.js.map +1 -0
- package/dist/internal/testing/machine/probe.d.ts +26 -0
- package/dist/internal/testing/machine/probe.d.ts.map +1 -0
- package/dist/internal/testing/machine/probe.js +45 -0
- package/dist/internal/testing/machine/probe.js.map +1 -0
- package/dist/internal/testing/machine/referenceModel.d.ts +203 -0
- package/dist/internal/testing/machine/referenceModel.d.ts.map +1 -0
- package/dist/internal/testing/machine/referenceModel.js +1012 -0
- package/dist/internal/testing/machine/referenceModel.js.map +1 -0
- package/dist/internal/testing/machine/runtime.d.ts +631 -0
- package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtime.js +726 -0
- package/dist/internal/testing/machine/runtime.js.map +1 -0
- package/dist/internal/testing/machine/runtimeInvariant.d.ts +32 -0
- package/dist/internal/testing/machine/runtimeInvariant.d.ts.map +1 -0
- package/dist/internal/testing/machine/runtimeInvariant.js +334 -0
- package/dist/internal/testing/machine/runtimeInvariant.js.map +1 -0
- package/dist/internal/testing/machine/trace.d.ts +17 -0
- package/dist/internal/testing/machine/trace.d.ts.map +1 -0
- package/dist/internal/testing/machine/trace.js +94 -0
- package/dist/internal/testing/machine/trace.js.map +1 -0
- package/dist/internal/testing/machine/verification.d.ts +36 -0
- package/dist/internal/testing/machine/verification.d.ts.map +1 -0
- package/dist/internal/testing/machine/verification.js +1375 -0
- package/dist/internal/testing/machine/verification.js.map +1 -0
- package/dist/testing/MachineTest.d.ts +1588 -0
- package/dist/testing/MachineTest.d.ts.map +1 -0
- package/dist/testing/MachineTest.js +406 -0
- package/dist/testing/MachineTest.js.map +1 -0
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +7 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/{ClusterMachine.d.ts → unstable/cluster/ClusterMachine.d.ts} +56 -45
- package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
- package/dist/unstable/cluster/ClusterMachine.js +144 -0
- package/dist/unstable/cluster/ClusterMachine.js.map +1 -0
- package/dist/{cluster.js → unstable/cluster/index.d.ts} +1 -1
- package/dist/unstable/cluster/index.d.ts.map +1 -0
- package/dist/{cluster.d.ts → unstable/cluster/index.js} +1 -1
- package/dist/unstable/cluster/index.js.map +1 -0
- package/dist/{AtomMachine.d.ts → unstable/reactivity/AtomMachine.d.ts} +116 -50
- package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
- package/dist/unstable/reactivity/AtomMachine.js +164 -0
- package/dist/unstable/reactivity/AtomMachine.js.map +1 -0
- package/dist/{reactivity.js → unstable/reactivity/index.d.ts} +1 -1
- package/dist/unstable/reactivity/index.d.ts.map +1 -0
- package/dist/{reactivity.d.ts → unstable/reactivity/index.js} +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -0
- package/docs/agent-guide.md +316 -31
- package/package.json +28 -10
- package/dist/AtomMachine.d.ts.map +0 -1
- package/dist/AtomMachine.js.map +0 -1
- package/dist/ClusterMachine.d.ts.map +0 -1
- package/dist/ClusterMachine.js.map +0 -1
- package/dist/cluster.d.ts.map +0 -1
- package/dist/cluster.js.map +0 -1
- package/dist/internal/machineErrors.d.ts.map +0 -1
- package/dist/internal/machineErrors.js.map +0 -1
- package/dist/internal/machineModel.d.ts.map +0 -1
- package/dist/internal/machineModel.js.map +0 -1
- package/dist/internal/machinePlanner.d.ts +0 -74
- package/dist/internal/machinePlanner.d.ts.map +0 -1
- package/dist/internal/machinePlanner.js +0 -797
- package/dist/internal/machinePlanner.js.map +0 -1
- package/dist/internal/machineProcess.d.ts.map +0 -1
- package/dist/internal/machineProcess.js +0 -181
- package/dist/internal/machineProcess.js.map +0 -1
- package/dist/internal/machineRuntime.d.ts +0 -125
- package/dist/internal/machineRuntime.d.ts.map +0 -1
- package/dist/internal/machineRuntime.js +0 -365
- package/dist/internal/machineRuntime.js.map +0 -1
- package/dist/reactivity.d.ts.map +0 -1
- package/dist/reactivity.js.map +0 -1
|
@@ -0,0 +1,631 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effect-native command-model testing for live machine references.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Cause from "effect/Cause";
|
|
7
|
+
import * as Duration from "effect/Duration";
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import { FastCheck } from "effect/testing";
|
|
10
|
+
import * as Machine from "../../../Machine.js";
|
|
11
|
+
import type { CausalRuntimeEvidence, Probe, ProbeStep, RuntimeInvariant } from "../../../testing/MachineTest.js";
|
|
12
|
+
import { type SchemaArbitraryReport } from "./arbitrary.js";
|
|
13
|
+
import { type RuntimeInvariantError } from "./runtimeInvariant.js";
|
|
14
|
+
type AnyMachine = Machine.Machine.Any;
|
|
15
|
+
/**
|
|
16
|
+
* A command applied to a running machine during model-based testing.
|
|
17
|
+
*
|
|
18
|
+
* @category models
|
|
19
|
+
* @since 0.4.0
|
|
20
|
+
*/
|
|
21
|
+
export type RuntimeCommand<Event> = {
|
|
22
|
+
readonly _tag: "Send";
|
|
23
|
+
readonly event: Event;
|
|
24
|
+
} | {
|
|
25
|
+
readonly _tag: "Advance";
|
|
26
|
+
readonly duration: Duration.Input;
|
|
27
|
+
} | {
|
|
28
|
+
readonly _tag: "Stop";
|
|
29
|
+
} | {
|
|
30
|
+
readonly _tag: "Checkpoint";
|
|
31
|
+
readonly label: string | undefined;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Constructs a command that sends one public event.
|
|
35
|
+
*
|
|
36
|
+
* @category constructors
|
|
37
|
+
* @since 0.4.0
|
|
38
|
+
*/
|
|
39
|
+
export declare const sendCommand: <Event>(event: Event) => RuntimeCommand<Event>;
|
|
40
|
+
/**
|
|
41
|
+
* Constructs a command that advances Effect's `TestClock`.
|
|
42
|
+
*
|
|
43
|
+
* @category constructors
|
|
44
|
+
* @since 0.4.0
|
|
45
|
+
*/
|
|
46
|
+
export declare const advanceCommand: <Event = never>(duration: Duration.Input) => RuntimeCommand<Event>;
|
|
47
|
+
/**
|
|
48
|
+
* Constructs an idempotent command that stops the machine.
|
|
49
|
+
*
|
|
50
|
+
* @category constructors
|
|
51
|
+
* @since 0.4.0
|
|
52
|
+
*/
|
|
53
|
+
export declare const stopCommand: <Event = never>() => RuntimeCommand<Event>;
|
|
54
|
+
/**
|
|
55
|
+
* Constructs a no-op command used to synchronize with work enqueued by earlier
|
|
56
|
+
* commands. Its behavior is selected by the reference-model step.
|
|
57
|
+
*
|
|
58
|
+
* @category constructors
|
|
59
|
+
* @since 0.4.0
|
|
60
|
+
*/
|
|
61
|
+
export declare const checkpointCommand: <Event = never>(label?: string) => RuntimeCommand<Event>;
|
|
62
|
+
/**
|
|
63
|
+
* The result of executing one runtime command.
|
|
64
|
+
*
|
|
65
|
+
* @category models
|
|
66
|
+
* @since 0.4.0
|
|
67
|
+
*/
|
|
68
|
+
export type RuntimeCommandResult = {
|
|
69
|
+
readonly _tag: "SendAccepted";
|
|
70
|
+
} | {
|
|
71
|
+
readonly _tag: "SendRejected";
|
|
72
|
+
readonly error: Machine.StoppedError;
|
|
73
|
+
} | {
|
|
74
|
+
readonly _tag: "ClockAdvanced";
|
|
75
|
+
} | {
|
|
76
|
+
readonly _tag: "Stopped";
|
|
77
|
+
} | {
|
|
78
|
+
readonly _tag: "Checkpoint";
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Defines how a model step synchronizes with public machine observations.
|
|
82
|
+
*
|
|
83
|
+
* `None` is appropriate when a send is intentionally only enqueued. `Next`
|
|
84
|
+
* consumes the next snapshot published after the previously consumed one.
|
|
85
|
+
* `Until` also consumes intermediate snapshots and is useful for a checkpoint
|
|
86
|
+
* after several queued sends. `Current` is only a sample; it should be used
|
|
87
|
+
* when the model already knows there is no outstanding asynchronous work.
|
|
88
|
+
*
|
|
89
|
+
* @category models
|
|
90
|
+
* @since 0.4.0
|
|
91
|
+
*/
|
|
92
|
+
export type RuntimeSynchronization<State, Error, Output> = {
|
|
93
|
+
readonly _tag: "None";
|
|
94
|
+
} | {
|
|
95
|
+
readonly _tag: "Current";
|
|
96
|
+
} | {
|
|
97
|
+
readonly _tag: "Next";
|
|
98
|
+
} | {
|
|
99
|
+
readonly _tag: "Until";
|
|
100
|
+
readonly predicate: (snapshot: Machine.RuntimeSnapshot<State, Error, Output>) => boolean;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Constructors for runtime synchronization policies.
|
|
104
|
+
*
|
|
105
|
+
* @category constructors
|
|
106
|
+
* @since 0.4.0
|
|
107
|
+
*/
|
|
108
|
+
export declare const RuntimeSynchronization: {
|
|
109
|
+
readonly none: {
|
|
110
|
+
readonly _tag: "None";
|
|
111
|
+
};
|
|
112
|
+
readonly current: {
|
|
113
|
+
readonly _tag: "Current";
|
|
114
|
+
};
|
|
115
|
+
readonly next: {
|
|
116
|
+
readonly _tag: "Next";
|
|
117
|
+
};
|
|
118
|
+
readonly until: <State, Error = never, Output = never>(predicate: (snapshot: Machine.RuntimeSnapshot<State, Error, Output>) => boolean) => RuntimeSynchronization<State, Error, Output>;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* The pure/reference-model result for one runtime command.
|
|
122
|
+
*
|
|
123
|
+
* @category models
|
|
124
|
+
* @since 0.4.0
|
|
125
|
+
*/
|
|
126
|
+
export interface RuntimeModelStep<Model, Expected, State, Error, Output> {
|
|
127
|
+
readonly model: Model;
|
|
128
|
+
readonly expected: Expected;
|
|
129
|
+
readonly synchronize: RuntimeSynchronization<State, Error, Output>;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Explicit name for the model step used by the enqueue-oriented command
|
|
133
|
+
* runner. The `RuntimeModelStep` name remains as a compatibility alias.
|
|
134
|
+
*
|
|
135
|
+
* @category models
|
|
136
|
+
* @since 0.4.0
|
|
137
|
+
*/
|
|
138
|
+
export type EnqueuedRuntimeModelStep<Model, Expected, State, Error, Output> = RuntimeModelStep<Model, Expected, State, Error, Output>;
|
|
139
|
+
/**
|
|
140
|
+
* Additional asynchronous observation requested after a causal command has
|
|
141
|
+
* completed. `None` never guesses that later invoke, timer, or child work is
|
|
142
|
+
* finished. `Until` observes the current runtime snapshot and subsequent
|
|
143
|
+
* publications until its predicate matches.
|
|
144
|
+
*
|
|
145
|
+
* @category models
|
|
146
|
+
* @since 0.4.0
|
|
147
|
+
*/
|
|
148
|
+
export type RuntimeAwait<State, Error, Output> = {
|
|
149
|
+
readonly _tag: "None";
|
|
150
|
+
} | {
|
|
151
|
+
readonly _tag: "Until";
|
|
152
|
+
readonly predicate: (snapshot: Machine.RuntimeSnapshot<State, Error, Output>) => boolean;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* The pure/reference-model result for one causally executed command.
|
|
156
|
+
*
|
|
157
|
+
* `await` is only for asynchronous behavior after the command boundary. A
|
|
158
|
+
* submitted `Send` always completes its exact managed macrostep first.
|
|
159
|
+
*
|
|
160
|
+
* @category models
|
|
161
|
+
* @since 0.4.0
|
|
162
|
+
*/
|
|
163
|
+
export interface CausalRuntimeModelStep<Model, Expected, State, Error, Output> {
|
|
164
|
+
readonly model: Model;
|
|
165
|
+
readonly expected: Expected;
|
|
166
|
+
readonly await?: RuntimeAwait<State, Error, Output>;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Exact execution result for one causal runtime command.
|
|
170
|
+
*
|
|
171
|
+
* @category models
|
|
172
|
+
* @since 0.4.0
|
|
173
|
+
*/
|
|
174
|
+
export type CausalRuntimeCommandResult<M extends AnyMachine> = {
|
|
175
|
+
readonly _tag: "SendProcessed";
|
|
176
|
+
readonly step: ProbeStep<M>;
|
|
177
|
+
} | {
|
|
178
|
+
readonly _tag: "SendRejected";
|
|
179
|
+
readonly error: Machine.StoppedError;
|
|
180
|
+
} | {
|
|
181
|
+
readonly _tag: "ClockAdvanced";
|
|
182
|
+
} | {
|
|
183
|
+
readonly _tag: "Stopped";
|
|
184
|
+
} | {
|
|
185
|
+
readonly _tag: "Checkpoint";
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Actual causal evidence made available to inspection and assertions.
|
|
189
|
+
*
|
|
190
|
+
* @category models
|
|
191
|
+
* @since 0.4.0
|
|
192
|
+
*/
|
|
193
|
+
export interface CausalRuntimeCommandActual<M extends AnyMachine, Error, Output, Observed> {
|
|
194
|
+
readonly result: CausalRuntimeCommandResult<M>;
|
|
195
|
+
readonly snapshot: Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>;
|
|
196
|
+
/** Snapshots tested by an explicit `RuntimeAwait.until`, including its current snapshot. */
|
|
197
|
+
readonly awaited: ReadonlyArray<Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>>;
|
|
198
|
+
readonly inspected: Observed | undefined;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Context supplied to a custom causal runtime inspection effect.
|
|
202
|
+
*
|
|
203
|
+
* @category models
|
|
204
|
+
* @since 0.4.0
|
|
205
|
+
*/
|
|
206
|
+
export interface CausalRuntimeInspectionContext<M extends AnyMachine, Error, Output> {
|
|
207
|
+
readonly index: number;
|
|
208
|
+
readonly command: RuntimeCommand<Machine.Machine.InputEvent<M>>;
|
|
209
|
+
readonly result: CausalRuntimeCommandResult<M>;
|
|
210
|
+
readonly probe: Probe<M, Error, Output>;
|
|
211
|
+
readonly ref: Probe<M, Error, Output>["ref"];
|
|
212
|
+
readonly snapshot: Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>;
|
|
213
|
+
readonly awaited: ReadonlyArray<Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>>;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Context supplied to a causal reference-model assertion.
|
|
217
|
+
*
|
|
218
|
+
* @category models
|
|
219
|
+
* @since 0.4.0
|
|
220
|
+
*/
|
|
221
|
+
export interface CausalRuntimeAssertionContext<M extends AnyMachine, Model, Expected, Error, Output, Observed> extends CausalRuntimeInspectionContext<M, Error, Output> {
|
|
222
|
+
readonly model: Model;
|
|
223
|
+
readonly expected: Expected;
|
|
224
|
+
readonly actual: CausalRuntimeCommandActual<M, Error, Output, Observed>;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Configuration for causally checking runtime commands against a reference
|
|
228
|
+
* model.
|
|
229
|
+
*
|
|
230
|
+
* @category models
|
|
231
|
+
* @since 0.4.0
|
|
232
|
+
*/
|
|
233
|
+
export interface CausalRuntimeModelOptions<M extends AnyMachine, Model, Expected, Error, Output, Observed = never, ModelError = never, ModelServices = never, InspectionError = never, InspectionServices = never, AssertionError = never, AssertionServices = never> {
|
|
234
|
+
readonly initialModel: Model;
|
|
235
|
+
/** Live-clock bound for an explicit `RuntimeAwait.until`. Defaults to one second. */
|
|
236
|
+
readonly observationTimeout?: Duration.Input;
|
|
237
|
+
readonly transition: (model: Model, command: RuntimeCommand<Machine.Machine.InputEvent<M>>, index: number) => Effect.Effect<CausalRuntimeModelStep<Model, Expected, Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>, ModelError, ModelServices>;
|
|
238
|
+
readonly inspect?: (context: CausalRuntimeInspectionContext<M, Error, Output>) => Effect.Effect<Observed, InspectionError, InspectionServices>;
|
|
239
|
+
readonly assert: (context: CausalRuntimeAssertionContext<M, Model, Expected, Error, Output, Observed>) => Effect.Effect<void, AssertionError, AssertionServices>;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Context used to select additional asynchronous observation for a law-oriented command run.
|
|
243
|
+
*
|
|
244
|
+
* @category models
|
|
245
|
+
* @since 0.4.0
|
|
246
|
+
*/
|
|
247
|
+
export interface CausalVerificationAwaitContext<M extends AnyMachine, Error, Output> {
|
|
248
|
+
readonly index: number;
|
|
249
|
+
readonly command: RuntimeCommand<Machine.Machine.InputEvent<M>>;
|
|
250
|
+
readonly probe: Probe<M, Error, Output>;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Configuration for causal verification without a separate reference model.
|
|
254
|
+
*
|
|
255
|
+
* @category models
|
|
256
|
+
* @since 0.4.0
|
|
257
|
+
*/
|
|
258
|
+
export interface CausalVerificationOptions<M extends AnyMachine, Error, Output> {
|
|
259
|
+
readonly invariants: ReadonlyArray<RuntimeInvariant<M>>;
|
|
260
|
+
readonly observationTimeout?: Duration.Input;
|
|
261
|
+
readonly await?: (context: CausalVerificationAwaitContext<M, Error, Output>) => RuntimeAwait<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* A law-oriented causal transcript without dummy model or expected fields.
|
|
265
|
+
*
|
|
266
|
+
* @category models
|
|
267
|
+
* @since 0.4.0
|
|
268
|
+
*/
|
|
269
|
+
export interface CausalVerificationTranscript<M extends AnyMachine, Error, Output> extends CausalRuntimeEvidence<M, Error, Output> {
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Actual evidence made available to a runtime command assertion.
|
|
273
|
+
*
|
|
274
|
+
* @category models
|
|
275
|
+
* @since 0.4.0
|
|
276
|
+
*/
|
|
277
|
+
export interface RuntimeCommandActual<State, Error, Output, Observed> {
|
|
278
|
+
readonly result: RuntimeCommandResult;
|
|
279
|
+
readonly snapshot: Machine.RuntimeSnapshot<State, Error, Output> | undefined;
|
|
280
|
+
readonly published: ReadonlyArray<Machine.RuntimeSnapshot<State, Error, Output>>;
|
|
281
|
+
readonly inspected: Observed | undefined;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Context supplied to a custom runtime inspection effect.
|
|
285
|
+
*
|
|
286
|
+
* @category models
|
|
287
|
+
* @since 0.4.0
|
|
288
|
+
*/
|
|
289
|
+
export interface RuntimeInspectionContext<State, Event, Error, Output> {
|
|
290
|
+
readonly index: number;
|
|
291
|
+
readonly command: RuntimeCommand<Event>;
|
|
292
|
+
readonly result: RuntimeCommandResult;
|
|
293
|
+
readonly ref: Machine.MachineRef<State, Event, Error, Output>;
|
|
294
|
+
readonly snapshot: Machine.RuntimeSnapshot<State, Error, Output> | undefined;
|
|
295
|
+
readonly published: ReadonlyArray<Machine.RuntimeSnapshot<State, Error, Output>>;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Context supplied to the reference-model assertion.
|
|
299
|
+
*
|
|
300
|
+
* @category models
|
|
301
|
+
* @since 0.4.0
|
|
302
|
+
*/
|
|
303
|
+
export interface RuntimeAssertionContext<Model, Expected, State, Event, Error, Output, Observed> extends RuntimeInspectionContext<State, Event, Error, Output> {
|
|
304
|
+
readonly model: Model;
|
|
305
|
+
readonly expected: Expected;
|
|
306
|
+
readonly actual: RuntimeCommandActual<State, Error, Output, Observed>;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Configuration for an Effect-native runtime command-model run.
|
|
310
|
+
*
|
|
311
|
+
* @category models
|
|
312
|
+
* @since 0.4.0
|
|
313
|
+
*/
|
|
314
|
+
export interface RuntimeModelOptions<Model, Expected, State, Event, Error, Output, Observed = never, ModelError = never, ModelServices = never, InspectionError = never, InspectionServices = never, AssertionError = never, AssertionServices = never> {
|
|
315
|
+
readonly initialModel: Model;
|
|
316
|
+
/**
|
|
317
|
+
* Live-clock bound for `Next` and `Until` synchronization. Defaults to one
|
|
318
|
+
* second and never advances the machine's virtual `TestClock`.
|
|
319
|
+
*/
|
|
320
|
+
readonly observationTimeout?: Duration.Input;
|
|
321
|
+
readonly transition: (model: Model, command: RuntimeCommand<Event>, index: number) => Effect.Effect<RuntimeModelStep<Model, Expected, State, Error, Output>, ModelError, ModelServices>;
|
|
322
|
+
readonly inspect?: (context: RuntimeInspectionContext<State, Event, Error, Output>) => Effect.Effect<Observed, InspectionError, InspectionServices>;
|
|
323
|
+
readonly assert: (context: RuntimeAssertionContext<Model, Expected, State, Event, Error, Output, Observed>) => Effect.Effect<void, AssertionError, AssertionServices>;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* One successfully checked command in a replayable runtime transcript.
|
|
327
|
+
*
|
|
328
|
+
* @category models
|
|
329
|
+
* @since 0.4.0
|
|
330
|
+
*/
|
|
331
|
+
export interface RuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed> {
|
|
332
|
+
readonly index: number;
|
|
333
|
+
readonly command: RuntimeCommand<Event>;
|
|
334
|
+
readonly model: Model;
|
|
335
|
+
readonly expected: Expected;
|
|
336
|
+
readonly actual: RuntimeCommandActual<State, Error, Output, Observed>;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* A complete command-model execution transcript.
|
|
340
|
+
*
|
|
341
|
+
* @category models
|
|
342
|
+
* @since 0.4.0
|
|
343
|
+
*/
|
|
344
|
+
export interface RuntimeTranscript<Model, Expected, State, Event, Error, Output, Observed> {
|
|
345
|
+
readonly commands: ReadonlyArray<RuntimeCommand<Event>>;
|
|
346
|
+
readonly initial: Machine.RuntimeSnapshot<State, Error, Output>;
|
|
347
|
+
readonly records: ReadonlyArray<RuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed>>;
|
|
348
|
+
readonly finalModel: Model;
|
|
349
|
+
/** The last explicitly synchronized snapshot, never a racy trailing sample. */
|
|
350
|
+
readonly final: Machine.RuntimeSnapshot<State, Error, Output>;
|
|
351
|
+
/**
|
|
352
|
+
* `false` when potentially outstanding work has not been bounded by an
|
|
353
|
+
* `Until` predicate or a terminal snapshot.
|
|
354
|
+
*/
|
|
355
|
+
readonly synchronized: boolean;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Enqueue-oriented name for actual runtime command evidence.
|
|
359
|
+
*
|
|
360
|
+
* @category models
|
|
361
|
+
* @since 0.4.0
|
|
362
|
+
*/
|
|
363
|
+
export type EnqueuedRuntimeCommandActual<State, Error, Output, Observed> = RuntimeCommandActual<State, Error, Output, Observed>;
|
|
364
|
+
/**
|
|
365
|
+
* Enqueue-oriented name for runtime inspection context.
|
|
366
|
+
*
|
|
367
|
+
* @category models
|
|
368
|
+
* @since 0.4.0
|
|
369
|
+
*/
|
|
370
|
+
export type EnqueuedRuntimeInspectionContext<State, Event, Error, Output> = RuntimeInspectionContext<State, Event, Error, Output>;
|
|
371
|
+
/**
|
|
372
|
+
* Enqueue-oriented name for runtime assertion context.
|
|
373
|
+
*
|
|
374
|
+
* @category models
|
|
375
|
+
* @since 0.4.0
|
|
376
|
+
*/
|
|
377
|
+
export type EnqueuedRuntimeAssertionContext<Model, Expected, State, Event, Error, Output, Observed> = RuntimeAssertionContext<Model, Expected, State, Event, Error, Output, Observed>;
|
|
378
|
+
/**
|
|
379
|
+
* Enqueue-oriented options for a runtime reference model.
|
|
380
|
+
*
|
|
381
|
+
* @category models
|
|
382
|
+
* @since 0.4.0
|
|
383
|
+
*/
|
|
384
|
+
export type EnqueuedRuntimeModelOptions<Model, Expected, State, Event, Error, Output, Observed = never, ModelError = never, ModelServices = never, InspectionError = never, InspectionServices = never, AssertionError = never, AssertionServices = never> = RuntimeModelOptions<Model, Expected, State, Event, Error, Output, Observed, ModelError, ModelServices, InspectionError, InspectionServices, AssertionError, AssertionServices>;
|
|
385
|
+
/**
|
|
386
|
+
* Enqueue-oriented name for a checked runtime command record.
|
|
387
|
+
*
|
|
388
|
+
* @category models
|
|
389
|
+
* @since 0.4.0
|
|
390
|
+
*/
|
|
391
|
+
export type EnqueuedRuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed> = RuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed>;
|
|
392
|
+
/**
|
|
393
|
+
* Enqueue-oriented name for a complete runtime transcript.
|
|
394
|
+
*
|
|
395
|
+
* @category models
|
|
396
|
+
* @since 0.4.0
|
|
397
|
+
*/
|
|
398
|
+
export type EnqueuedRuntimeTranscript<Model, Expected, State, Event, Error, Output, Observed> = RuntimeTranscript<Model, Expected, State, Event, Error, Output, Observed>;
|
|
399
|
+
/**
|
|
400
|
+
* One successfully checked causal command.
|
|
401
|
+
*
|
|
402
|
+
* @category models
|
|
403
|
+
* @since 0.4.0
|
|
404
|
+
*/
|
|
405
|
+
export interface CausalRuntimeCommandRecord<M extends AnyMachine, Model, Expected, Error, Output, Observed> {
|
|
406
|
+
readonly index: number;
|
|
407
|
+
readonly command: RuntimeCommand<Machine.Machine.InputEvent<M>>;
|
|
408
|
+
readonly model: Model;
|
|
409
|
+
readonly expected: Expected;
|
|
410
|
+
readonly actual: CausalRuntimeCommandActual<M, Error, Output, Observed>;
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* A complete causally executed command-model transcript.
|
|
414
|
+
*
|
|
415
|
+
* Every accepted send in `records` completed its managed macrostep. This does
|
|
416
|
+
* not claim that later timer, invoke, or child work has completed unless the
|
|
417
|
+
* corresponding model step requested `probe.await.until`.
|
|
418
|
+
*
|
|
419
|
+
* @category models
|
|
420
|
+
* @since 0.4.0
|
|
421
|
+
*/
|
|
422
|
+
export interface CausalRuntimeTranscript<M extends AnyMachine, Model, Expected, Error, Output, Observed> {
|
|
423
|
+
readonly commands: ReadonlyArray<RuntimeCommand<Machine.Machine.InputEvent<M>>>;
|
|
424
|
+
readonly initial: Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>;
|
|
425
|
+
readonly records: ReadonlyArray<CausalRuntimeCommandRecord<M, Model, Expected, Error, Output, Observed>>;
|
|
426
|
+
readonly finalModel: Model;
|
|
427
|
+
readonly final: Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>;
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Partial evidence retained when a causal command fails after execution has
|
|
431
|
+
* begun but before a complete checked record exists.
|
|
432
|
+
*
|
|
433
|
+
* @category models
|
|
434
|
+
* @since 0.4.0
|
|
435
|
+
*/
|
|
436
|
+
export interface CausalRuntimeCommandAttempt<M extends AnyMachine, Model, Expected, Error, Output, Observed> {
|
|
437
|
+
readonly index: number;
|
|
438
|
+
readonly command: RuntimeCommand<Machine.Machine.InputEvent<M>>;
|
|
439
|
+
readonly model: Model;
|
|
440
|
+
readonly expected: Expected;
|
|
441
|
+
readonly result: CausalRuntimeCommandResult<M> | undefined;
|
|
442
|
+
readonly snapshot: Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output> | undefined;
|
|
443
|
+
readonly awaited: ReadonlyArray<Machine.RuntimeSnapshot<Machine.Machine.Snapshot<Machine.Machine.States<M>>, Error, Output>>;
|
|
444
|
+
readonly inspected: Observed | undefined;
|
|
445
|
+
}
|
|
446
|
+
declare const RuntimeObservationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
|
|
447
|
+
readonly _tag: "MachineTestRuntimeObservationError";
|
|
448
|
+
} & Readonly<A>;
|
|
449
|
+
/**
|
|
450
|
+
* Failure raised when an expected public change stream observation is absent.
|
|
451
|
+
*
|
|
452
|
+
* @category errors
|
|
453
|
+
* @since 0.4.0
|
|
454
|
+
*/
|
|
455
|
+
export declare class RuntimeObservationError extends RuntimeObservationError_base<{
|
|
456
|
+
readonly index: number;
|
|
457
|
+
readonly synchronization: "Next" | "Until";
|
|
458
|
+
readonly reason: "ended" | "timeout";
|
|
459
|
+
readonly message: string;
|
|
460
|
+
}> {
|
|
461
|
+
}
|
|
462
|
+
declare const RuntimeCommandFailure_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
|
|
463
|
+
readonly _tag: "MachineTestRuntimeCommandFailure";
|
|
464
|
+
} & Readonly<A>;
|
|
465
|
+
/**
|
|
466
|
+
* A typed command-model failure retaining the successfully checked prefix.
|
|
467
|
+
*
|
|
468
|
+
* @category errors
|
|
469
|
+
* @since 0.4.0
|
|
470
|
+
*/
|
|
471
|
+
export declare class RuntimeCommandFailure<Failure = unknown, Model = unknown, Expected = unknown, State = unknown, Event = unknown, Error = unknown, Output = unknown, Observed = unknown> extends RuntimeCommandFailure_base<{
|
|
472
|
+
readonly phase: "model" | "execution" | "observation" | "inspection" | "assertion";
|
|
473
|
+
readonly index: number;
|
|
474
|
+
readonly command: RuntimeCommand<Event>;
|
|
475
|
+
readonly cause: Cause.Cause<Failure>;
|
|
476
|
+
readonly prefix: ReadonlyArray<RuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed>>;
|
|
477
|
+
readonly attempted: RuntimeCommandRecord<Model, Expected, State, Event, Error, Output, Observed> | undefined;
|
|
478
|
+
}> {
|
|
479
|
+
}
|
|
480
|
+
declare const CausalRuntimeCommandFailure_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
|
|
481
|
+
readonly _tag: "MachineTestCausalRuntimeCommandFailure";
|
|
482
|
+
} & Readonly<A>;
|
|
483
|
+
/**
|
|
484
|
+
* A typed causal command-model failure retaining the successfully checked
|
|
485
|
+
* prefix and exact attempted command.
|
|
486
|
+
*
|
|
487
|
+
* @category errors
|
|
488
|
+
* @since 0.4.0
|
|
489
|
+
*/
|
|
490
|
+
export declare class CausalRuntimeCommandFailure<Failure = unknown, M extends AnyMachine = AnyMachine, Model = unknown, Expected = unknown, Error = unknown, Output = unknown, Observed = unknown> extends CausalRuntimeCommandFailure_base<{
|
|
491
|
+
readonly phase: "model" | "execution" | "observation" | "inspection" | "assertion";
|
|
492
|
+
readonly index: number;
|
|
493
|
+
readonly command: RuntimeCommand<Machine.Machine.InputEvent<M>>;
|
|
494
|
+
readonly cause: Cause.Cause<Failure>;
|
|
495
|
+
readonly prefix: ReadonlyArray<CausalRuntimeCommandRecord<M, Model, Expected, Error, Output, Observed>>;
|
|
496
|
+
readonly attempted: CausalRuntimeCommandAttempt<M, Model, Expected, Error, Output, Observed> | undefined;
|
|
497
|
+
}> {
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Runs typed commands against a live `MachineRef` and checks them against a
|
|
501
|
+
* supplied Effect-native reference model.
|
|
502
|
+
*
|
|
503
|
+
* The runner observes only public `MachineRef` behavior. In particular, a
|
|
504
|
+
* successful send means enqueue acceptance, not completed processing. A model
|
|
505
|
+
* must request `Next`/`Until` only when it predicts a publication, or use an
|
|
506
|
+
* explicit checkpoint to drain previously enqueued work. Machine emissions can
|
|
507
|
+
* be captured by the runtime service used by the machine and returned from the
|
|
508
|
+
* optional `inspect` effect.
|
|
509
|
+
*
|
|
510
|
+
* Typed failures and defects from model transitions, command execution,
|
|
511
|
+
* inspection, and assertions are retained as full `Cause` values. A cause
|
|
512
|
+
* containing only interruption is propagated as interruption so cancelling a
|
|
513
|
+
* property run cannot be mistaken for a machine counterexample.
|
|
514
|
+
*
|
|
515
|
+
* @category constructors
|
|
516
|
+
* @since 0.4.0
|
|
517
|
+
*/
|
|
518
|
+
export declare const runEnqueuedCommands: <Model, Expected, State, Event, Error, Output, Observed = never, ModelError = never, ModelServices = never, InspectionError = never, InspectionServices = never, AssertionError = never, AssertionServices = never>(ref: Machine.MachineRef<State, Event, Error, Output>, commands: Iterable<RuntimeCommand<Event>>, options: RuntimeModelOptions<Model, Expected, State, Event, Error, Output, Observed, ModelError, ModelServices, InspectionError, InspectionServices, AssertionError, AssertionServices>) => Effect.Effect<RuntimeTranscript<Model, Expected, State, Event, Error, Output, Observed>, RuntimeCommandFailure<ModelError | InspectionError | AssertionError | RuntimeObservationError, Model, Expected, State, Event, Error, Output, Observed>, ModelServices | InspectionServices | AssertionServices>;
|
|
519
|
+
/**
|
|
520
|
+
* Compatibility alias for enqueue-oriented runtime command execution.
|
|
521
|
+
*
|
|
522
|
+
* @deprecated Use `runEnqueuedCommands`. This compatibility name does not
|
|
523
|
+
* expose whether sends are merely enqueued or causally processed.
|
|
524
|
+
*
|
|
525
|
+
* @category constructors
|
|
526
|
+
* @since 0.4.0
|
|
527
|
+
*/
|
|
528
|
+
export declare const runRuntimeCommands: typeof runEnqueuedCommands;
|
|
529
|
+
/**
|
|
530
|
+
* Runs typed commands against a probe and checks them against an Effect-native
|
|
531
|
+
* reference model.
|
|
532
|
+
*
|
|
533
|
+
* Every accepted `Send` completes its exact managed runtime macrostep before
|
|
534
|
+
* inspection, assertion, and the next command. Use `probe.await.until` only
|
|
535
|
+
* for later asynchronous work such as timer, invoke, or child delivery.
|
|
536
|
+
* Processing failures are attributed to the exact submitted command and retain
|
|
537
|
+
* the successfully checked prefix for FastCheck shrinking and replay.
|
|
538
|
+
*
|
|
539
|
+
* Use `runEnqueuedCommands` instead when the behavior under test intentionally
|
|
540
|
+
* depends on burst enqueueing or outstanding mailbox work.
|
|
541
|
+
*
|
|
542
|
+
* @category constructors
|
|
543
|
+
* @since 0.4.0
|
|
544
|
+
*/
|
|
545
|
+
export declare const runCausalCommands: <M extends AnyMachine, Error, Output, Model, Expected, Observed = never, ModelError = never, ModelServices = never, InspectionError = never, InspectionServices = never, AssertionError = never, AssertionServices = never>(probe: Probe<M, Error, Output>, commands: Iterable<RuntimeCommand<Machine.Machine.InputEvent<M>>>, options: CausalRuntimeModelOptions<M, Model, Expected, Error, Output, Observed, ModelError, ModelServices, InspectionError, InspectionServices, AssertionError, AssertionServices>) => Effect.Effect<CausalRuntimeTranscript<M, Model, Expected, Error, Output, Observed>, CausalRuntimeCommandFailure<Error | ModelError | InspectionError | AssertionError | RuntimeObservationError, M, Model, Expected, Error, Output, Observed>, ModelServices | InspectionServices | AssertionServices>;
|
|
546
|
+
/**
|
|
547
|
+
* Causally executes commands and checks reusable runtime invariants without
|
|
548
|
+
* requiring a dummy reference model. Use `runCausalCommands` when exact
|
|
549
|
+
* expected results come from an application model.
|
|
550
|
+
*
|
|
551
|
+
* @category constructors
|
|
552
|
+
* @since 0.4.0
|
|
553
|
+
*/
|
|
554
|
+
export declare const verifyCausalCommands: <M extends AnyMachine, Error, Output>(probe: Probe<M, Error, Output>, commands: Iterable<RuntimeCommand<Machine.Machine.InputEvent<M>>>, options: CausalVerificationOptions<M, Error, Output>) => Effect.Effect<CausalVerificationTranscript<M, Error, Output>, CausalRuntimeCommandFailure<Error | RuntimeObservationError, M, undefined, undefined, Error, Output, never> | RuntimeInvariantError<M>>;
|
|
555
|
+
/**
|
|
556
|
+
* Options controlling schema-derived runtime command generation.
|
|
557
|
+
*
|
|
558
|
+
* @category models
|
|
559
|
+
* @since 0.4.0
|
|
560
|
+
*/
|
|
561
|
+
export interface RuntimeCommandsOptions<M extends AnyMachine> {
|
|
562
|
+
readonly minCommands?: number;
|
|
563
|
+
readonly maxCommands?: number;
|
|
564
|
+
readonly eventArbitrary?: FastCheck.Arbitrary<Machine.Machine.InputEvent<M>>;
|
|
565
|
+
readonly advanceArbitrary?: FastCheck.Arbitrary<Duration.Input>;
|
|
566
|
+
readonly includeAdvance?: boolean;
|
|
567
|
+
readonly includeStop?: boolean;
|
|
568
|
+
readonly includeCheckpoint?: boolean;
|
|
569
|
+
readonly additionalCommands?: ReadonlyArray<FastCheck.Arbitrary<RuntimeCommand<Machine.Machine.InputEvent<M>>>>;
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* Diagnostics describing a schema-derived runtime command arbitrary.
|
|
573
|
+
*
|
|
574
|
+
* @category models
|
|
575
|
+
* @since 0.4.0
|
|
576
|
+
*/
|
|
577
|
+
export interface RuntimeCommandsDiagnostics {
|
|
578
|
+
readonly events: "none" | "schema" | "override";
|
|
579
|
+
readonly schemaReports: ReadonlyArray<SchemaArbitraryReport>;
|
|
580
|
+
readonly includesAdvance: boolean;
|
|
581
|
+
readonly includesStop: boolean;
|
|
582
|
+
readonly includesCheckpoint: boolean;
|
|
583
|
+
}
|
|
584
|
+
/**
|
|
585
|
+
* A shrinkable runtime command arbitrary and its derivation diagnostics.
|
|
586
|
+
*
|
|
587
|
+
* @category models
|
|
588
|
+
* @since 0.4.0
|
|
589
|
+
*/
|
|
590
|
+
export interface RuntimeCommands<M extends AnyMachine> {
|
|
591
|
+
readonly arbitrary: FastCheck.Arbitrary<ReadonlyArray<RuntimeCommand<Machine.Machine.InputEvent<M>>>>;
|
|
592
|
+
readonly diagnostics: RuntimeCommandsDiagnostics;
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* Derives a shrinkable command sequence from public event schemas and explicit
|
|
596
|
+
* clock/stop/checkpoint command choices.
|
|
597
|
+
*
|
|
598
|
+
* This deliberately returns ordinary Effect FastCheck arbitraries instead of
|
|
599
|
+
* adapting the runner through `asyncModelRun`: the latter requires Promise
|
|
600
|
+
* callbacks and would erase Effect error and service channels.
|
|
601
|
+
*
|
|
602
|
+
* @category constructors
|
|
603
|
+
* @since 0.4.0
|
|
604
|
+
*/
|
|
605
|
+
export declare const runtimeCommands: <M extends AnyMachine>(machine: M, options?: RuntimeCommandsOptions<M>) => RuntimeCommands<M>;
|
|
606
|
+
/**
|
|
607
|
+
* Formats a runtime transcript or failure as replayable line-oriented evidence.
|
|
608
|
+
*
|
|
609
|
+
* @category formatting
|
|
610
|
+
* @since 0.4.0
|
|
611
|
+
*/
|
|
612
|
+
export declare const formatEnqueuedTranscript: (value: RuntimeTranscript<any, any, any, any, any, any, any> | RuntimeCommandFailure<any, any, any, any, any, any, any, any>) => string;
|
|
613
|
+
/**
|
|
614
|
+
* Compatibility alias for enqueue-oriented transcript formatting.
|
|
615
|
+
*
|
|
616
|
+
* @deprecated Use `formatEnqueuedTranscript`.
|
|
617
|
+
*
|
|
618
|
+
* @category formatting
|
|
619
|
+
* @since 0.4.0
|
|
620
|
+
*/
|
|
621
|
+
export declare const formatRuntimeTranscript: typeof formatEnqueuedTranscript;
|
|
622
|
+
/**
|
|
623
|
+
* Formats a causal runtime transcript or failure as replayable line-oriented
|
|
624
|
+
* evidence, including exact probe steps and explicit asynchronous observations.
|
|
625
|
+
*
|
|
626
|
+
* @category formatting
|
|
627
|
+
* @since 0.4.0
|
|
628
|
+
*/
|
|
629
|
+
export declare const formatCausalTranscript: (value: CausalRuntimeTranscript<any, any, any, any, any, any> | CausalRuntimeCommandFailure<any, any, any, any, any, any, any>) => string;
|
|
630
|
+
export {};
|
|
631
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/internal/testing/machine/runtime.ts"],"names":[],"mappings":"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"}
|