expectStatusSequence method

void expectStatusSequence(
  1. List<Type> expectedTypes, {
  2. int? skip,
})

Asserts that the emissions match the expected status type sequence.

tester.expectStatusSequence([WaitingStatus, UpdatingStatus]);

Implementation

void expectStatusSequence(List<Type> expectedTypes, {int? skip}) {
  final emissions =
      skip != null ? _emissions.skip(skip).toList() : _emissions;

  expect(
    emissions.length,
    greaterThanOrEqualTo(expectedTypes.length),
    reason: 'Expected at least ${expectedTypes.length} emissions, '
        'got ${emissions.length}',
  );

  for (var i = 0; i < expectedTypes.length; i++) {
    final emission = emissions[i];
    final expectedType = expectedTypes[i];

    // Check using type matching to handle generics
    final matches = _matchesStatusType(emission, expectedType);
    expect(
      matches,
      isTrue,
      reason: 'Emission $i: expected $expectedType, '
          'got ${emission.runtimeType}',
    );
  }
}