row_test.rs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. use crate::database::block_test::script::DatabaseRowTest;
  2. use crate::database::block_test::script::RowScript::*;
  3. use flowy_database2::entities::FieldType;
  4. use flowy_database2::services::field::DateCellData;
  5. use lib_infra::util::timestamp;
  6. // Create a new row at the end of the grid and check the create time is valid.
  7. #[tokio::test]
  8. async fn created_at_field_test() {
  9. let mut test = DatabaseRowTest::new().await;
  10. let row_count = test.rows.len();
  11. test
  12. .run_scripts(vec![CreateEmptyRow, AssertRowCount(row_count + 1)])
  13. .await;
  14. // Get created time of the new row.
  15. let row = test.get_rows().await.last().cloned().unwrap();
  16. let updated_at_field = test.get_first_field(FieldType::CreatedTime);
  17. let cell = row.cells.cell_for_field_id(&updated_at_field.id).unwrap();
  18. let created_at_timestamp = DateCellData::from(cell).timestamp.unwrap();
  19. assert!(created_at_timestamp > 0);
  20. assert!(created_at_timestamp < timestamp());
  21. }
  22. // Update row and check the update time is valid.
  23. #[tokio::test]
  24. async fn update_at_field_test() {
  25. let mut test = DatabaseRowTest::new().await;
  26. let row = test.get_rows().await.remove(0);
  27. let updated_at_field = test.get_first_field(FieldType::LastEditedTime);
  28. let cell = row.cells.cell_for_field_id(&updated_at_field.id).unwrap();
  29. let old_updated_at = DateCellData::from(cell).timestamp.unwrap();
  30. test
  31. .run_script(UpdateTextCell {
  32. row_id: row.id.clone(),
  33. content: "test".to_string(),
  34. })
  35. .await;
  36. // Get the updated time of the row.
  37. let row = test.get_rows().await.remove(0);
  38. let updated_at_field = test.get_first_field(FieldType::LastEditedTime);
  39. let cell = row.cells.cell_for_field_id(&updated_at_field.id).unwrap();
  40. let new_updated_at = DateCellData::from(cell).timestamp.unwrap();
  41. assert!(old_updated_at < new_updated_at);
  42. }