mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: add date filter tests
This commit is contained in:
@ -41,6 +41,7 @@ impl<'a> GridRowTestBuilder<'a> {
|
||||
let value = serde_json::to_string(&DateCellChangeset {
|
||||
date: Some(data.to_string()),
|
||||
time: None,
|
||||
is_utc: true,
|
||||
})
|
||||
.unwrap();
|
||||
let date_field = self.field_rev_with_type(&FieldType::DateTime);
|
||||
|
@ -29,7 +29,7 @@ impl GridCellTest {
|
||||
|
||||
match script {
|
||||
CellScript::UpdateCell { changeset, is_err } => {
|
||||
let result = self.editor.update_cell(changeset).await;
|
||||
let result = self.editor.update_cell_with_changeset(changeset).await;
|
||||
if is_err {
|
||||
assert!(result.is_err())
|
||||
} else {
|
||||
|
@ -58,6 +58,7 @@ pub fn make_date_cell_string(s: &str) -> String {
|
||||
serde_json::to_string(&DateCellChangeset {
|
||||
date: Some(s.to_string()),
|
||||
time: None,
|
||||
is_utc: true,
|
||||
})
|
||||
.unwrap()
|
||||
}
|
||||
|
@ -3,15 +3,76 @@ use crate::grid::filter_test::script::GridFilterTest;
|
||||
use flowy_grid::entities::DateFilterCondition;
|
||||
|
||||
#[tokio::test]
|
||||
#[should_panic]
|
||||
async fn grid_filter_date_is_check_test() {
|
||||
async fn grid_filter_date_is_test() {
|
||||
let mut test = GridFilterTest::new().await;
|
||||
let scripts = vec![
|
||||
CreateDateFilter {
|
||||
condition: DateFilterCondition::DateIs,
|
||||
content: "1647251762".to_string(),
|
||||
start: None,
|
||||
end: None,
|
||||
timestamp: Some(1647251762),
|
||||
},
|
||||
AssertNumberOfRows { expected: 3 },
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn grid_filter_date_after_test() {
|
||||
let mut test = GridFilterTest::new().await;
|
||||
let scripts = vec![
|
||||
CreateDateFilter {
|
||||
condition: DateFilterCondition::DateAfter,
|
||||
start: None,
|
||||
end: None,
|
||||
timestamp: Some(1647251762),
|
||||
},
|
||||
AssertNumberOfRows { expected: 2 },
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn grid_filter_date_on_or_after_test() {
|
||||
let mut test = GridFilterTest::new().await;
|
||||
let scripts = vec![
|
||||
CreateDateFilter {
|
||||
condition: DateFilterCondition::DateOnOrAfter,
|
||||
start: None,
|
||||
end: None,
|
||||
timestamp: Some(1668359085),
|
||||
},
|
||||
AssertNumberOfRows { expected: 2 },
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn grid_filter_date_on_or_before_test() {
|
||||
let mut test = GridFilterTest::new().await;
|
||||
let scripts = vec![
|
||||
CreateDateFilter {
|
||||
condition: DateFilterCondition::DateOnOrBefore,
|
||||
start: None,
|
||||
end: None,
|
||||
timestamp: Some(1668359085),
|
||||
},
|
||||
AssertNumberOfRows { expected: 4 },
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn grid_filter_date_within_test() {
|
||||
let mut test = GridFilterTest::new().await;
|
||||
let scripts = vec![
|
||||
CreateDateFilter {
|
||||
condition: DateFilterCondition::DateWithIn,
|
||||
start: Some(1647251762),
|
||||
end: Some(1668704685),
|
||||
timestamp: None,
|
||||
},
|
||||
AssertNumberOfRows { expected: 5 },
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
#![allow(unused_imports)]
|
||||
|
||||
use futures::TryFutureExt;
|
||||
use flowy_grid::entities::{CreateFilterParams, CreateFilterPayloadPB, DeleteFilterParams, GridLayout, GridSettingChangesetParams, GridSettingPB, RowPB, TextFilterCondition, FieldType, NumberFilterCondition, CheckboxFilterCondition, DateFilterCondition};
|
||||
use flowy_grid::entities::{CreateFilterParams, CreateFilterPayloadPB, DeleteFilterParams, GridLayout, GridSettingChangesetParams, GridSettingPB, RowPB, TextFilterCondition, FieldType, NumberFilterCondition, CheckboxFilterCondition, DateFilterCondition, DateFilterContent};
|
||||
use flowy_grid::services::setting::GridSettingChangesetBuilder;
|
||||
use grid_rev_model::{FieldRevision, FieldTypeRevision};
|
||||
use flowy_grid::services::filter::FilterType;
|
||||
@ -27,7 +27,9 @@ pub enum FilterScript {
|
||||
},
|
||||
CreateDateFilter{
|
||||
condition: DateFilterCondition,
|
||||
content: String,
|
||||
start: Option<i64>,
|
||||
end: Option<i64>,
|
||||
timestamp: Option<i64>,
|
||||
},
|
||||
AssertFilterCount {
|
||||
count: i32,
|
||||
@ -91,10 +93,16 @@ impl GridFilterTest {
|
||||
CreateFilterPayloadPB::new(field_rev, condition, "".to_string());
|
||||
self.insert_filter(payload).await;
|
||||
}
|
||||
FilterScript::CreateDateFilter { condition, content} => {
|
||||
FilterScript::CreateDateFilter { condition, start, end, timestamp} => {
|
||||
let field_rev = self.get_field_rev(FieldType::DateTime);
|
||||
let content = DateFilterContent {
|
||||
start,
|
||||
end,
|
||||
timestamp,
|
||||
}.to_string();
|
||||
let payload =
|
||||
CreateFilterPayloadPB::new(field_rev, condition, content);
|
||||
|
||||
self.insert_filter(payload).await;
|
||||
}
|
||||
FilterScript::AssertFilterCount { count } => {
|
||||
@ -125,7 +133,6 @@ impl GridFilterTest {
|
||||
}
|
||||
|
||||
async fn insert_filter(&self, payload: CreateFilterPayloadPB) {
|
||||
|
||||
let params: CreateFilterParams = payload.try_into().unwrap();
|
||||
let _ = self.editor.create_filter(params).await.unwrap();
|
||||
}
|
||||
|
@ -236,7 +236,7 @@ fn make_test_grid() -> BuildGridContext {
|
||||
match field_type {
|
||||
FieldType::RichText => row_builder.insert_text_cell("DA"),
|
||||
FieldType::Number => row_builder.insert_number_cell("4"),
|
||||
FieldType::DateTime => row_builder.insert_date_cell("1647251762"),
|
||||
FieldType::DateTime => row_builder.insert_date_cell("1668704685"),
|
||||
FieldType::SingleSelect => {
|
||||
row_builder.insert_single_select_cell(|mut options| options.remove(1))
|
||||
}
|
||||
@ -250,7 +250,7 @@ fn make_test_grid() -> BuildGridContext {
|
||||
match field_type {
|
||||
FieldType::RichText => row_builder.insert_text_cell("AE"),
|
||||
FieldType::Number => row_builder.insert_number_cell(""),
|
||||
FieldType::DateTime => row_builder.insert_date_cell("1647251762"),
|
||||
FieldType::DateTime => row_builder.insert_date_cell("1668359085"),
|
||||
FieldType::SingleSelect => {
|
||||
row_builder.insert_single_select_cell(|mut options| options.remove(2))
|
||||
}
|
||||
|
Reference in New Issue
Block a user