run<A extends InteractionIntegration> static method
Implementation
static Future<AdapterConformanceResult>
run<A extends InteractionIntegration>({
required A Function(bool replaying) create,
required FutureOr<Object?> Function(A adapter) scenario,
Redactor? redactor,
Duration settle = const Duration(milliseconds: 50),
}) async {
final capture = InteractionHarness.capture(redactor: redactor);
final captureAdapter = create(false);
await capture.setUp([captureAdapter]);
final captured = await scenario(captureAdapter);
await Future<void>.delayed(settle);
final dependencies = capture.dependencies();
final replay = InteractionHarness.replay(
capture.encodedEvents(),
dependencies: dependencies,
redactor: redactor,
);
final replayAdapter = create(true);
await replay.setUp([replayAdapter]);
final replayed = await scenario(replayAdapter);
await Future<void>.delayed(settle);
final divergences = replay.finish();
return AdapterConformanceResult(
captured: captured,
replayed: replayed,
events: capture.events,
dependencies: dependencies,
divergences: divergences,
eligibility: capture.eligibility(),
);
}