content: import 'package:flutter_test/flutter_test.dart';
  
  /// Workaround for https://github.com/flutter/flutter/issues/88765
  extension WaitForExtension on WidgetTester {
    Future<void> waitFor(
      Finder finder, {
      Duration timeout = const Duration(seconds: 20),
      bool skipPumpAndSettle = false,
    }) async {
      final end = DateTime.now().add(timeout);
  
      do {
        if (DateTime.now().isAfter(end)) {
          throw Exception('Timed out waiting for $finder');
        }
  
        if (!skipPumpAndSettle) {
          await pumpAndSettle();
        }
        await Future.delayed(const Duration(milliseconds: 100));
      } while (finder.evaluate().isEmpty);
    }
  }
  
  extension MaybeUppercaseFinder on CommonFinders {
    /// On Android some button labels are in uppercase while on iOS they
    /// are not. This method tries both.
    Finder maybeUppercaseText(
      String text, {
      bool findRichText = false,
      bool skipOffstage = true,
    }) {
      try {
        final finder = find.text(
          text.toUpperCase(),
          findRichText: findRichText,
          skipOffstage: skipOffstage,
        );
        expect(finder, findsOneWidget);
        return finder;
      } catch (_) {
        return find.text(
          text,
          findRichText: findRichText,
          skipOffstage: skipOffstage,
        );
      }
    }
  }
  