testState<S extends AirState> function
Future<void>
testState<S extends AirState>({
- required S createState(),
- Map<
String, dynamic> initialState = const {}, - required Future<
void> test(- S state,
- AirTestHarness harness
Test an AirState in isolation
Example:
await testState(
createState: () => CartState(),
initialState: {'cart.items': []},
test: (state, harness) async {
harness.emitSignal('cart.add', {'productId': '123'});
await harness.pump();
expect(harness.getState('cart.items'), hasLength(1));
},
);
Implementation
Future<void> testState<S extends AirState>({
required S Function() createState,
Map<String, dynamic> initialState = const {},
required Future<void> Function(S state, AirTestHarness harness) test,
}) async {
final harness = AirTestHarness(initialState: initialState);
late S state;
try {
harness.setup();
state = createState();
await test(state, harness);
} finally {
state.dispose();
harness.teardown();
}
}