1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- use crate::database::block_test::script::DatabaseRowTest;
- use crate::database::block_test::script::RowScript::*;
- use flowy_database2::entities::FieldType;
- use flowy_database2::services::field::DateCellData;
- #[tokio::test]
- async fn set_created_at_field_on_create_row() {
- let mut test = DatabaseRowTest::new().await;
- let row_count = test.rows.len();
- let before_create_timestamp = chrono::offset::Utc::now().timestamp();
- test
- .run_scripts(vec![CreateEmptyRow, AssertRowCount(row_count + 1)])
- .await;
- let after_create_timestamp = chrono::offset::Utc::now().timestamp();
- let mut rows = test.rows.clone();
- rows.sort_by(|r1, r2| r1.created_at.cmp(&r2.created_at));
- let row = rows.last().unwrap();
- let fields = test.fields.clone();
- let created_at_field = fields
- .iter()
- .find(|&f| FieldType::from(f.field_type) == FieldType::CreatedAt)
- .unwrap();
- let cell = row.cells.cell_for_field_id(&created_at_field.id).unwrap();
- let created_at_timestamp = DateCellData::from(cell).timestamp.unwrap();
- assert!(
- created_at_timestamp >= before_create_timestamp
- && created_at_timestamp <= after_create_timestamp,
- "timestamp: {}, before: {}, after: {}",
- created_at_timestamp,
- before_create_timestamp,
- after_create_timestamp
- );
- let updated_at_field = fields
- .iter()
- .find(|&f| FieldType::from(f.field_type) == FieldType::UpdatedAt)
- .unwrap();
- let cell = row.cells.cell_for_field_id(&updated_at_field.id).unwrap();
- let updated_at_timestamp = DateCellData::from(cell).timestamp.unwrap();
- assert!(
- updated_at_timestamp >= before_create_timestamp
- && updated_at_timestamp <= after_create_timestamp,
- "timestamp: {}, before: {}, after: {}",
- updated_at_timestamp,
- before_create_timestamp,
- after_create_timestamp
- );
- }
|