edit_activity_test

 avatar
unknown
plain_text
11 hours ago
2.6 kB
4
Indexable
in 3 days
void main() {
  IntegrationTestWidgetsFlutterBinding.ensureInitialized();
setUp((){
  registerDbDependencies();
  GetIt.I.get<SqliteDatabaseHelper>().deleteDatabase();
  registerAllOtherDependencies();
});

tearDown((){
  GetIt.I.get<SqliteDatabaseHelper>().closeDatabase();
  GetIt.I.get<SqliteDatabaseHelper>().deleteDatabase();
  GetIt.I.reset();
});

  group('edit activity testing',
          (){
        testWidgets('verify editing activity shows on list',
                (tester) async {
                  await tester.pumpWidget(app.MyApp(onBoarding: false));
              await tester.pumpAndSettle();
              await addActivity(tester, 'Test Activity', 'Test Tag');
              expect(find.byKey(const Key('Test Activity_list_activity_list_item_title')), findsOneWidget);
              expect(find.byKey(const Key('Test Activity_list_activity_list_item_edit_button')), findsOneWidget);
              await tester.tap(find.byKey(const Key('Test Activity_list_activity_list_item_edit_button')));
              await tester.pumpAndSettle();
              expect(find.byKey(const Key('edit_activity_page')), findsOneWidget);
              expect(find.byKey(const Key('edit_activity_title')), findsOneWidget);
              await tester.enterText(find.byKey(const Key('edit_activity_title')), 'Oranguton');
              await tester.pumpAndSettle();
              expect(find.byKey(const Key('edit_activity_save_button')), findsOneWidget);
              await tester.tap(find.byKey(const Key('edit_activity_save_button')));
                  await tester.pumpUntil(
                    find.byKey(const Key('Oranguton_list_activity_list_item_title')),
                    timeout: const Duration(seconds: 10), // Set a reasonable timeout
                  );
                  await tester.pumpAndSettle();
                  expect(find.byKey(const Key('listActivityPage')), findsOneWidget);
                  expect(find.byKey(const Key('Oranguton_list_activity_list_item_title')), findsOneWidget);
            });
      });
}
extension on WidgetTester {
  Future<void> pumpUntil(
      Finder finder, {
        Duration timeout = const Duration(seconds: 10),
      }) async {
    bool timerDone = false;
    final timer = Timer(timeout, () => timerDone = true);
    while (!timerDone) {
      await pump();
      if (finder.evaluate().isNotEmpty) {
        timer.cancel();
        return;
      }
    }
    // If we reach here, the timeout was reached.
    fail('Timed out waiting for widget with finder: ${finder.description}');
  }
}
Editor is loading...
Leave a Comment