Selaa lähdekoodia

fix: create grid for each test (#1431)

Nathan.fooo 2 vuotta sitten
vanhempi
commit
840095d73c

+ 3 - 5
frontend/app_flowy/lib/plugins/grid/application/grid_data_controller.dart

@@ -105,11 +105,9 @@ class GridDataController {
         fieldController: fieldController,
       );
 
-      cache.addListener(
-        onRowsChanged: (reason) {
-          _onRowChanged?.call(rowInfos, reason);
-        },
-      );
+      cache.addListener(onRowsChanged: (reason) {
+        _onRowChanged?.call(rowInfos, reason);
+      });
 
       _blocks[block.id] = cache;
     }

+ 1 - 3
frontend/app_flowy/lib/plugins/grid/application/row/row_cache.dart

@@ -145,9 +145,7 @@ class GridRowCache {
 
   void _showRows(List<String> visibleRows) {}
 
-  void onRowsChanged(
-    void Function(RowsChangedReason) onRowChanged,
-  ) {
+  void onRowsChanged(void Function(RowsChangedReason) onRowChanged) {
     _rowChangeReasonNotifier.addListener(() {
       onRowChanged(_rowChangeReasonNotifier.reason);
     });

+ 5 - 2
frontend/app_flowy/test/bloc_test/grid_test/grid_bloc_test.dart

@@ -7,10 +7,13 @@ void main() {
   late AppFlowyGridTest gridTest;
   setUpAll(() async {
     gridTest = await AppFlowyGridTest.ensureInitialized();
-    await gridTest.createTestGrid();
   });
 
-  group('Create a new row in Grid', () {
+  group('Edit Grid:', () {
+    setUp(() async {
+      await gridTest.createTestGrid();
+    });
+    // The initial number of rows is 3 for each grid.
     blocTest<GridBloc, GridState>(
       "create a row",
       build: () =>

+ 6 - 2
frontend/app_flowy/test/bloc_test/grid_test/util.dart

@@ -171,13 +171,17 @@ class AppFlowyGridTest {
       (view) async {
         gridView = view;
         _gridDataController = GridDataController(view: view);
-        final result = await _gridDataController!.openGrid();
-        result.fold((l) => null, (r) => throw Exception(r));
+        await openGrid();
       },
       (error) {},
     );
   }
 
+  Future<void> openGrid() async {
+    final result = await _gridDataController!.openGrid();
+    result.fold((l) => null, (r) => throw Exception(r));
+  }
+
   Future<void> createTestBoard() async {
     final app = await unitTest.createTestApp();
     final builder = BoardPluginBuilder();

+ 9 - 3
frontend/rust-lib/flowy-revision/src/rev_persistence.rs

@@ -126,14 +126,20 @@ where
             };
 
             let revisions = self.revisions_in_range(&range).await?;
+            let rev_ids = range.to_rev_ids();
             debug_assert_eq!(range.len() as usize, revisions.len());
             // compact multiple revisions into one
             let merged_revision = rev_compress.merge_revisions(&self.user_id, &self.object_id, revisions)?;
             tracing::Span::current().record("rev_id", &merged_revision.rev_id);
-            let _ = sync_seq.recv(merged_revision.rev_id)?;
 
-            // replace the revisions in range with compact revision
-            self.compact(&range, merged_revision).await?;
+            let record = SyncRecord {
+                revision: merged_revision,
+                state: RevisionState::Sync,
+                write_to_disk: true,
+            };
+            let _ = self
+                .disk_cache
+                .delete_and_insert_records(&self.object_id, Some(rev_ids), vec![record])?;
         }
         Ok(())
     }