123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- use collab_database::fields::Field;
- use collab_database::views::DatabaseLayout;
- use flowy_database2::entities::FieldType;
- use flowy_database2::services::setting::CalendarLayoutSetting;
- use crate::database::database_editor::DatabaseEditorTest;
- pub enum LayoutScript {
- AssertCalendarLayoutSetting { expected: CalendarLayoutSetting },
- AssertDefaultAllCalendarEvents,
- AssertAllCalendarEventsCount { expected: usize },
- UpdateDatabaseLayout { layout: DatabaseLayout },
- }
- pub struct DatabaseLayoutTest {
- database_test: DatabaseEditorTest,
- }
- impl DatabaseLayoutTest {
- pub async fn new_no_date_grid() -> Self {
- let database_test = DatabaseEditorTest::new_no_date_grid().await;
- Self { database_test }
- }
- pub async fn new_calendar() -> Self {
- let database_test = DatabaseEditorTest::new_calendar().await;
- Self { database_test }
- }
- pub async fn run_scripts(&mut self, scripts: Vec<LayoutScript>) {
- for script in scripts {
- self.run_script(script).await;
- }
- }
- pub async fn get_first_date_field(&self) -> Field {
- self.database_test.get_first_field(FieldType::DateTime)
- }
- pub async fn run_script(&mut self, script: LayoutScript) {
- match script {
- LayoutScript::UpdateDatabaseLayout { layout } => {
- self
- .database_test
- .editor
- .update_view_layout(&self.database_test.view_id, layout)
- .await
- .unwrap();
- },
- LayoutScript::AssertAllCalendarEventsCount { expected } => {
- let events = self
- .database_test
- .editor
- .get_all_calendar_events(&self.database_test.view_id)
- .await;
- assert_eq!(events.len(), expected);
- },
- LayoutScript::AssertCalendarLayoutSetting { expected } => {
- let view_id = self.database_test.view_id.clone();
- let layout_ty = DatabaseLayout::Calendar;
- let calendar_setting = self
- .database_test
- .editor
- .get_layout_setting(&view_id, layout_ty)
- .await
- .unwrap()
- .calendar
- .unwrap();
- assert_eq!(calendar_setting.layout_ty, expected.layout_ty);
- assert_eq!(
- calendar_setting.first_day_of_week,
- expected.first_day_of_week
- );
- assert_eq!(calendar_setting.show_weekends, expected.show_weekends);
- },
- LayoutScript::AssertDefaultAllCalendarEvents => {
- let events = self
- .database_test
- .editor
- .get_all_calendar_events(&self.database_test.view_id)
- .await;
- assert_eq!(events.len(), 5);
- for (index, event) in events.into_iter().enumerate() {
- if index == 0 {
- assert_eq!(event.title, "A");
- assert_eq!(event.timestamp, 1678090778);
- }
- if index == 1 {
- assert_eq!(event.title, "B");
- assert_eq!(event.timestamp, 1677917978);
- }
- if index == 2 {
- assert_eq!(event.title, "C");
- assert_eq!(event.timestamp, 1679213978);
- }
- if index == 4 {
- assert_eq!(event.title, "E");
- assert_eq!(event.timestamp, 1678695578);
- }
- }
- },
- }
- }
- }
|