database_test.rs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. use collab_plugins::cloud_storage::{CollabObject, CollabType};
  2. use uuid::Uuid;
  3. use flowy_user_deps::entities::SignUpResponse;
  4. use lib_infra::box_any::BoxAny;
  5. use crate::supabase_test::util::{
  6. collab_service, database_service, get_supabase_config, sign_up_param, user_auth_service,
  7. };
  8. #[tokio::test]
  9. async fn supabase_create_workspace_test() {
  10. if get_supabase_config().is_none() {
  11. return;
  12. }
  13. let user_service = user_auth_service();
  14. let uuid = Uuid::new_v4().to_string();
  15. let params = sign_up_param(uuid);
  16. let user: SignUpResponse = user_service.sign_up(BoxAny::new(params)).await.unwrap();
  17. let collab_service = collab_service();
  18. let database_service = database_service();
  19. let mut row_ids = vec![];
  20. for _i in 0..3 {
  21. let row_id = uuid::Uuid::new_v4().to_string();
  22. row_ids.push(row_id.clone());
  23. let collab_object = CollabObject {
  24. object_id: row_id,
  25. uid: user.user_id,
  26. ty: CollabType::DatabaseRow,
  27. meta: Default::default(),
  28. }
  29. .with_workspace_id(user.latest_workspace.id.clone());
  30. collab_service
  31. .send_update(&collab_object, 0, vec![1, 2, 3])
  32. .await
  33. .unwrap();
  34. collab_service
  35. .send_update(&collab_object, 0, vec![4, 5, 6])
  36. .await
  37. .unwrap();
  38. }
  39. let updates_by_oid = database_service
  40. .batch_get_collab_updates(row_ids, CollabType::DatabaseRow)
  41. .await
  42. .unwrap();
  43. assert_eq!(updates_by_oid.len(), 3);
  44. for (_, update) in updates_by_oid {
  45. assert_eq!(update.len(), 2);
  46. }
  47. }