Browse Source

chore: add app bloc test (#1344)

* chore: add app bloc test

* chore: add wait

Co-authored-by: nathan <[email protected]>
Nathan.fooo 2 years ago
parent
commit
5a6103f5d6

+ 30 - 0
frontend/app_flowy/test/bloc_test/menu_test/app_bloc_test.dart

@@ -67,6 +67,34 @@ void main() {
     },
   );
 
+  group('$AppBloc', () {
+    late AppPB app;
+    setUpAll(() async {
+      app = await test.createTestApp();
+    });
+
+    blocTest<AppBloc, AppState>(
+      "rename the app",
+      build: () => AppBloc(app: app)..add(const AppEvent.initial()),
+      wait: blocResponseDuration(),
+      act: (bloc) => bloc.add(const AppEvent.rename('Hello world')),
+      verify: (bloc) {
+        assert(bloc.state.app.name == 'Hello world');
+      },
+    );
+
+    blocTest<AppBloc, AppState>(
+      "delete the app",
+      build: () => AppBloc(app: app)..add(const AppEvent.initial()),
+      wait: blocResponseDuration(),
+      act: (bloc) => bloc.add(const AppEvent.delete()),
+      verify: (bloc) async {
+        final apps = await test.loadApps();
+        assert(apps.where((element) => element.id == app.id).isEmpty);
+      },
+    );
+  });
+
   group('$AppBloc', () {
     late ViewPB view;
     late AppPB app;
@@ -86,10 +114,12 @@ void main() {
         view = bloc.state.views.last;
       },
     );
+
     blocTest<AppBloc, AppState>(
       "delete the document",
       build: () => AppBloc(app: app)..add(const AppEvent.initial()),
       act: (bloc) => bloc.add(AppEvent.deleteView(view.id)),
+      wait: blocResponseDuration(),
       verify: (bloc) {
         assert(bloc.state.views.isEmpty);
       },

+ 9 - 0
frontend/app_flowy/test/util.dart

@@ -87,6 +87,15 @@ class AppFlowyUnitTest {
       (error) => throw Exception(error),
     );
   }
+
+  Future<List<AppPB>> loadApps() async {
+    final result = await workspaceService.getApps();
+
+    return result.fold(
+      (apps) => apps,
+      (error) => throw Exception(error),
+    );
+  }
 }
 
 void _pathProviderInitialized() {