test.rs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. use crate::database::database_ref_test::script::LinkDatabaseTest;
  2. use crate::database::database_ref_test::script::LinkDatabaseTestScript::*;
  3. #[tokio::test]
  4. async fn number_of_database_test() {
  5. let mut test = LinkDatabaseTest::new().await;
  6. test
  7. .run_scripts(vec![
  8. // After the LinkDatabaseTest initialize, it will create a grid.
  9. AssertNumberOfDatabase { expected: 1 },
  10. CreateNewGrid,
  11. AssertNumberOfDatabase { expected: 2 },
  12. ])
  13. .await;
  14. }
  15. #[tokio::test]
  16. async fn database_view_link_with_existing_database_test() {
  17. let mut test = LinkDatabaseTest::new().await;
  18. let database = test.all_databases().await.pop().unwrap();
  19. test
  20. .run_scripts(vec![
  21. CreateGridViewAndLinkToDatabase {
  22. database_id: database.database_id,
  23. },
  24. AssertNumberOfDatabase { expected: 1 },
  25. ])
  26. .await;
  27. }
  28. #[tokio::test]
  29. async fn check_number_of_rows_in_linked_database_view() {
  30. let mut test = LinkDatabaseTest::new().await;
  31. let database = test.all_databases().await.pop().unwrap();
  32. let view = test
  33. .all_database_ref_views(&database.database_id)
  34. .await
  35. .remove(0);
  36. test
  37. .run_scripts(vec![
  38. CreateGridViewAndLinkToDatabase {
  39. database_id: database.database_id,
  40. },
  41. // The initial number of rows is 6
  42. AssertNumberOfRows {
  43. view_id: view.view_id.clone(),
  44. expected: 6,
  45. },
  46. ])
  47. .await;
  48. }
  49. #[tokio::test]
  50. async fn multiple_views_share_database_rows() {
  51. let mut test = LinkDatabaseTest::new().await;
  52. // After the LinkDatabaseTest initialize, it will create a default database
  53. // with Grid layout.
  54. let database = test.all_databases().await.pop().unwrap();
  55. let mut database_views = test.all_database_ref_views(&database.database_id).await;
  56. assert_eq!(database_views.len(), 1);
  57. let view = database_views.remove(0);
  58. test
  59. .run_scripts(vec![
  60. AssertNumberOfRows {
  61. view_id: view.view_id.clone(),
  62. expected: 6,
  63. },
  64. CreateGridViewAndLinkToDatabase {
  65. database_id: database.database_id.clone(),
  66. },
  67. ])
  68. .await;
  69. let database_views = test.all_database_ref_views(&database.database_id).await;
  70. assert_eq!(database_views.len(), 2);
  71. let view_id_1 = database_views.get(0).unwrap().view_id.clone();
  72. let view_id_2 = database_views.get(1).unwrap().view_id.clone();
  73. // Create a new row
  74. let mut builder = test.row_builder(&view_id_1).await;
  75. builder.insert_text_cell("hello world");
  76. test
  77. .run_scripts(vec![
  78. CreateRow {
  79. view_id: view_id_1.clone(),
  80. row_rev: builder.build(),
  81. },
  82. AssertNumberOfRows {
  83. view_id: view_id_1,
  84. expected: 7,
  85. },
  86. AssertNumberOfRows {
  87. view_id: view_id_2,
  88. expected: 7,
  89. },
  90. AssertNumberOfDatabase { expected: 1 },
  91. ])
  92. .await;
  93. }