FakeWorkerTransport constructor
FakeWorkerTransport({
- TaskRegistry? registry,
- bool failSpawn = false,
- Duration? readyDelay,
- Duration? taskLatency,
- bool clonePayloads = true,
Creates a fake transport.
registry supplies task handlers (an empty registry makes every task
fail with UnknownTaskException, which is itself useful to test).
failSpawn makes ready fail with WorkerSpawnException. readyDelay
postpones readiness. taskLatency delays each reply. clonePayloads
routes payloads/results through simulateStructuredClone (default).
Implementation
FakeWorkerTransport({
TaskRegistry? registry,
this.failSpawn = false,
this.readyDelay,
this.taskLatency,
bool clonePayloads = true,
}) : registry = registry ?? TaskRegistry(),
_clonePayloads = clonePayloads {
_ready = _buildReady();
// Mirror the real web transport: tasks sent before readiness are
// buffered; if the spawn fails they are silently dropped (the pool
// requeues them elsewhere).
_ready.then<void>((_) {
_isReady = true;
final buffered = List.of(_bufferedJobs);
_bufferedJobs.clear();
buffered.forEach(_run);
}).catchError((Object _) {
_bufferedJobs.clear();
});
}