testModule<M> function

Future<void> testModule<M>({
  1. required M module,
  2. Map<String, dynamic> initialState = const {},
  3. required Future<void> test(
    1. M module,
    2. AirTestHarness harness
    ),
})

Test a module in isolation

Example:

await testModule(
  module: CartModule(),
  initialState: {'cart.items': []},
  test: (module, harness) async {
    harness.emitSignal('cart.add', {'productId': '123'});
    expect(harness.getState('cart.items'), hasLength(1));
  },
);

Implementation

Future<void> testModule<M>({
  required M module,
  Map<String, dynamic> initialState = const {},
  required Future<void> Function(M module, AirTestHarness harness) test,
}) async {
  final harness = AirTestHarness(initialState: initialState);

  try {
    harness.setup();
    await test(module, harness);
  } finally {
    harness.teardown();
  }
}