edit_activity_test
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