row_test.rs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. #[tokio::test]
  6. async fn set_created_at_field_on_create_row() {
  7. let mut test = DatabaseRowTest::new().await;
  8. let row_count = test.rows.len();
  9. let before_create_timestamp = chrono::offset::Utc::now().timestamp();
  10. test
  11. .run_scripts(vec![CreateEmptyRow, AssertRowCount(row_count + 1)])
  12. .await;
  13. let after_create_timestamp = chrono::offset::Utc::now().timestamp();
  14. let mut rows = test.rows.clone();
  15. rows.sort_by(|r1, r2| r1.created_at.cmp(&r2.created_at));
  16. let row = rows.last().unwrap();
  17. let fields = test.fields.clone();
  18. let created_at_field = fields
  19. .iter()
  20. .find(|&f| FieldType::from(f.field_type) == FieldType::CreatedAt)
  21. .unwrap();
  22. let cell = row.cells.cell_for_field_id(&created_at_field.id).unwrap();
  23. let created_at_timestamp = DateCellData::from(cell).timestamp.unwrap();
  24. assert!(
  25. created_at_timestamp >= before_create_timestamp
  26. && created_at_timestamp <= after_create_timestamp,
  27. "timestamp: {}, before: {}, after: {}",
  28. created_at_timestamp,
  29. before_create_timestamp,
  30. after_create_timestamp
  31. );
  32. let updated_at_field = fields
  33. .iter()
  34. .find(|&f| FieldType::from(f.field_type) == FieldType::UpdatedAt)
  35. .unwrap();
  36. let cell = row.cells.cell_for_field_id(&updated_at_field.id).unwrap();
  37. let updated_at_timestamp = DateCellData::from(cell).timestamp.unwrap();
  38. assert!(
  39. updated_at_timestamp >= before_create_timestamp
  40. && updated_at_timestamp <= after_create_timestamp,
  41. "timestamp: {}, before: {}, after: {}",
  42. updated_at_timestamp,
  43. before_create_timestamp,
  44. after_create_timestamp
  45. );
  46. }