expectListCount method

void expectListCount({
  1. required String listId,
  2. required int expected,
  3. String? itemId,
  4. bool atLeast = false,
})

Implementation

void expectListCount({
  required String listId,
  required int expected,
  String? itemId,
  bool atLeast = false,
}) {
  final listFinder = finderForId(listId);
  if (listFinder.evaluate().isEmpty) {
    throw EnsembleTestFailure('expectListCount: list "$listId" not found.');
  }
  final count = itemId != null
      ? find
          .descendant(of: listFinder, matching: finderForId(itemId))
          .evaluate()
          .length
      : find
          .descendant(
              of: listFinder, matching: find.byWidgetPredicate((_) => true))
          .evaluate()
          .length;
  if (atLeast) {
    if (count < expected) {
      throw EnsembleTestFailure(
        'Expected at least $expected items in "$listId", found $count.',
      );
    }
    return;
  }
  if (count != expected) {
    throw EnsembleTestFailure(
      'Expected $expected items in "$listId", found $count.',
    );
  }
}