@@ -2,14 +2,15 @@ use crate::database_test::helper::{
22 create_database, restore_database_from_db, wait_for_specific_event,
33} ;
44use crate :: helper:: setup_log;
5- use collab_database:: database:: gen_row_id;
5+ use collab_database:: database:: { gen_row_id, DatabaseBody } ;
66
77use collab:: lock:: Mutex ;
88use collab_database:: entity:: CreateViewParams ;
99use collab_database:: rows:: CreateRowParams ;
1010use collab_database:: views:: {
1111 DatabaseLayout , DatabaseViewChange , FilterMapBuilder , GroupSettingBuilder , SortMapBuilder ,
1212} ;
13+ use collab_database:: workspace_database:: NoPersistenceDatabaseCollabService ;
1314use std:: sync:: Arc ;
1415use std:: time:: Duration ;
1516use tokio:: time:: sleep;
@@ -263,6 +264,7 @@ async fn observe_move_database_view_row_test() {
263264 . unwrap ( ) ;
264265
265266 let second_view_id = uuid:: Uuid :: new_v4 ( ) . to_string ( ) ;
267+ let first_view_id = database_test. get_all_views ( ) . first ( ) . unwrap ( ) . id . clone ( ) ;
266268 database_test
267269 . create_linked_view ( CreateViewParams {
268270 database_id : database_id. clone ( ) ,
@@ -279,10 +281,13 @@ async fn observe_move_database_view_row_test() {
279281
280282 let views = database_test. lock ( ) . await . get_all_views ( ) ;
281283 assert_eq ! ( views. len( ) , 2 ) ;
282- let first_view_id = views[ 0 ] . id . clone ( ) ;
283284
284285 let cloned_row_id_3 = row_id_3. clone ( ) ;
285286 let cloned_first_view_id = first_view_id. clone ( ) ;
287+ println ! (
288+ "first_view_id: {}, second_view_id:{}" ,
289+ first_view_id, second_view_id
290+ ) ;
286291 tokio:: spawn ( async move {
287292 sleep ( Duration :: from_millis ( 500 ) ) . await ;
288293 let mut db = cloned_database_test. lock ( ) . await ;
@@ -326,6 +331,20 @@ async fn observe_move_database_view_row_test() {
326331 assert_eq ! ( row_orders[ 1 ] . id, row_id_3) ;
327332 assert_eq ! ( row_orders[ 2 ] . id, row_id_1) ;
328333 assert_eq ! ( row_orders[ 3 ] . id, row_id_4) ;
334+ {
335+ let collab = & database_test. lock ( ) . await . collab ;
336+ let db_body =
337+ DatabaseBody :: from_collab ( collab, Arc :: new ( NoPersistenceDatabaseCollabService ) , None )
338+ . unwrap ( ) ;
339+
340+ let txn = collab. transact ( ) ;
341+ let body_row_orders = db_body. views . get_row_orders ( & txn, & first_view_id) ;
342+ assert_eq ! ( body_row_orders. len( ) , 4 ) ;
343+ assert_eq ! ( body_row_orders[ 0 ] . id, row_id_2) ;
344+ assert_eq ! ( body_row_orders[ 1 ] . id, row_id_3) ;
345+ assert_eq ! ( body_row_orders[ 2 ] . id, row_id_1) ;
346+ assert_eq ! ( body_row_orders[ 3 ] . id, row_id_4) ;
347+ }
329348
330349 // Get row orders for the second view
331350 // Moving row in the first database view should not affect the row orders in the second view
@@ -335,25 +354,35 @@ async fn observe_move_database_view_row_test() {
335354 . get_row_orders_for_view ( & second_view_id) ;
336355 assert_eq ! ( second_row_orders. len( ) , 4 ) ;
337356 assert_eq ! (
338- second_row_orders[ 0 ] . id, row_id_1,
339- "current row orders: {:?}" ,
340- second_row_orders
341- ) ;
342- assert_eq ! (
343- second_row_orders[ 1 ] . id, row_id_2,
344- "current row orders: {:?}" ,
345- second_row_orders
346- ) ;
347- assert_eq ! (
348- second_row_orders[ 2 ] . id, row_id_3,
349- "current row orders: {:?}" ,
350- second_row_orders
351- ) ;
352- assert_eq ! (
353- second_row_orders[ 3 ] . id, row_id_4,
354- "current row orders: {:?}" ,
357+ second_row_orders. len( ) ,
358+ 4 ,
359+ "Expected 4 rows, got {:?}" ,
355360 second_row_orders
356361 ) ;
362+
363+ let expected_ids = [ & row_id_1, & row_id_2, & row_id_3, & row_id_4] ;
364+ for ( i, expected_id) in expected_ids. into_iter ( ) . enumerate ( ) {
365+ assert_eq ! (
366+ & second_row_orders[ i] . id, expected_id,
367+ "Mismatch at row {}: current row orders: {:?}" ,
368+ i, second_row_orders
369+ ) ;
370+ }
371+
372+ {
373+ let collab = & database_test. lock ( ) . await . collab ;
374+ let db_body =
375+ DatabaseBody :: from_collab ( collab, Arc :: new ( NoPersistenceDatabaseCollabService ) , None )
376+ . unwrap ( ) ;
377+
378+ let txn = collab. transact ( ) ;
379+ let body_row_orders = db_body. views . get_row_orders ( & txn, & second_view_id) ;
380+ assert_eq ! ( body_row_orders. len( ) , 4 ) ;
381+ assert_eq ! ( body_row_orders[ 0 ] . id, row_id_1) ;
382+ assert_eq ! ( body_row_orders[ 1 ] . id, row_id_2) ;
383+ assert_eq ! ( body_row_orders[ 2 ] . id, row_id_3) ;
384+ assert_eq ! ( body_row_orders[ 3 ] . id, row_id_4) ;
385+ }
357386}
358387
359388#[ tokio:: test]
0 commit comments