Skip to content

Commit 26ea047

Browse files
authored
chore: fix move row test (#367)
1 parent 0236296 commit 26ea047

File tree

1 file changed

+48
-19
lines changed

1 file changed

+48
-19
lines changed

collab-database/tests/database_test/view_observe_test.rs

Lines changed: 48 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ use crate::database_test::helper::{
22
create_database, restore_database_from_db, wait_for_specific_event,
33
};
44
use crate::helper::setup_log;
5-
use collab_database::database::gen_row_id;
5+
use collab_database::database::{gen_row_id, DatabaseBody};
66

77
use collab::lock::Mutex;
88
use collab_database::entity::CreateViewParams;
99
use collab_database::rows::CreateRowParams;
1010
use collab_database::views::{
1111
DatabaseLayout, DatabaseViewChange, FilterMapBuilder, GroupSettingBuilder, SortMapBuilder,
1212
};
13+
use collab_database::workspace_database::NoPersistenceDatabaseCollabService;
1314
use std::sync::Arc;
1415
use std::time::Duration;
1516
use 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

Comments
 (0)