testInteractionContract function

Future<void> testInteractionContract(
  1. WidgetTester tester, {
  2. required Widget build(),
  3. required List<InteractionContract> contracts,
})

Runs a list of interaction contracts against a widget.

Implementation

Future<void> testInteractionContract(
  WidgetTester tester, {
  required Widget Function() build,
  required List<InteractionContract> contracts,
}) async {
  for (final contract in contracts) {
    // Isolate each contract execution
    await tester.pumpWidget(build());
    await tester.pumpAndSettle();

    // Verify contract
    debugPrint('Verifying Contract: ${contract.description}');
    await contract.verify(tester);

    // Cleanup
    await tester.pumpWidget(const SizedBox.shrink());
  }
}