calendar_mock_data.rs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. use crate::database::block_test::util::DatabaseRowTestBuilder;
  2. use database_model::{BuildDatabaseContext, CalendarLayoutSetting, LayoutRevision, LayoutSetting};
  3. use flowy_client_sync::client_database::DatabaseBuilder;
  4. use flowy_database::entities::FieldType;
  5. use flowy_database::services::field::{
  6. DateTypeOptionBuilder, FieldBuilder, MultiSelectTypeOptionBuilder, RichTextTypeOptionBuilder,
  7. };
  8. use strum::IntoEnumIterator;
  9. // Calendar unit test mock data
  10. pub fn make_test_calendar() -> BuildDatabaseContext {
  11. let mut database_builder = DatabaseBuilder::new();
  12. // text
  13. let text_field = FieldBuilder::new(RichTextTypeOptionBuilder::default())
  14. .name("Title")
  15. .visibility(true)
  16. .primary(true)
  17. .build();
  18. let _text_field_id = text_field.id.clone();
  19. database_builder.add_field(text_field);
  20. // date
  21. let date_type_option = DateTypeOptionBuilder::default();
  22. let date_field = FieldBuilder::new(date_type_option)
  23. .name("Date")
  24. .visibility(true)
  25. .build();
  26. let date_field_id = date_field.id.clone();
  27. database_builder.add_field(date_field);
  28. // single select
  29. let multi_select_type_option = MultiSelectTypeOptionBuilder::default();
  30. let multi_select_field = FieldBuilder::new(multi_select_type_option)
  31. .name("Tags")
  32. .visibility(true)
  33. .build();
  34. database_builder.add_field(multi_select_field);
  35. let calendar_layout_setting = CalendarLayoutSetting::new(date_field_id);
  36. let mut layout_setting = LayoutSetting::new();
  37. let calendar_setting = serde_json::to_string(&calendar_layout_setting).unwrap();
  38. layout_setting.insert(LayoutRevision::Calendar, calendar_setting);
  39. database_builder.set_layout_setting(layout_setting);
  40. for i in 0..5 {
  41. let block_id = database_builder.block_id().to_owned();
  42. let field_revs = database_builder.field_revs().clone();
  43. let mut row_builder = DatabaseRowTestBuilder::new(block_id.clone(), field_revs);
  44. match i {
  45. 0 => {
  46. for field_type in FieldType::iter() {
  47. match field_type {
  48. FieldType::RichText => row_builder.insert_text_cell("A"),
  49. FieldType::DateTime => row_builder.insert_date_cell("1678090778"),
  50. _ => "".to_owned(),
  51. };
  52. }
  53. },
  54. 1 => {
  55. for field_type in FieldType::iter() {
  56. match field_type {
  57. FieldType::RichText => row_builder.insert_text_cell("B"),
  58. FieldType::DateTime => row_builder.insert_date_cell("1677917978"),
  59. _ => "".to_owned(),
  60. };
  61. }
  62. },
  63. 2 => {
  64. for field_type in FieldType::iter() {
  65. match field_type {
  66. FieldType::RichText => row_builder.insert_text_cell("C"),
  67. FieldType::DateTime => row_builder.insert_date_cell("1679213978"),
  68. _ => "".to_owned(),
  69. };
  70. }
  71. },
  72. 3 => {
  73. for field_type in FieldType::iter() {
  74. match field_type {
  75. FieldType::RichText => row_builder.insert_text_cell("D"),
  76. FieldType::DateTime => row_builder.insert_date_cell("1678695578"),
  77. _ => "".to_owned(),
  78. };
  79. }
  80. },
  81. 4 => {
  82. for field_type in FieldType::iter() {
  83. match field_type {
  84. FieldType::RichText => row_builder.insert_text_cell("E"),
  85. FieldType::DateTime => row_builder.insert_date_cell("1678695578"),
  86. _ => "".to_owned(),
  87. };
  88. }
  89. },
  90. _ => {},
  91. }
  92. let row_rev = row_builder.build();
  93. database_builder.add_row(row_rev);
  94. }
  95. database_builder.build()
  96. }