Skip to content

Commit

Permalink
fix: remove inaccurate filter test and remove get_filter_by_field_id (A…
Browse files Browse the repository at this point in the history
  • Loading branch information
richardshiue authored Feb 21, 2024
1 parent 01be7a9 commit 195fabd
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 36 deletions.
20 changes: 0 additions & 20 deletions collab-database/src/database.rs
Original file line number Diff line number Diff line change
Expand Up @@ -887,26 +887,6 @@ impl Database {
}
}

pub fn get_filter_by_field_id<T: TryFrom<FilterMap>>(
&self,
view_id: &str,
field_id: &str,
) -> Option<T> {
let field_id = field_id.to_string();
let mut filters = self
.views
.get_view_filters(view_id)
.into_iter()
.filter(|filter_map| filter_map.get_str_value("field_id").as_ref() == Some(&field_id))
.flat_map(|value| T::try_from(value).ok())
.collect::<Vec<T>>();
if filters.is_empty() {
None
} else {
Some(filters.remove(0))
}
}

pub fn update_filter(&self, view_id: &str, filter_id: &str, f: impl FnOnce(&mut FilterMap)) {
self.views.update_database_view(view_id, |view_update| {
view_update.update_filters(|filter_update| {
Expand Down
22 changes: 6 additions & 16 deletions collab-database/tests/database_test/filter_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,35 +49,25 @@ async fn insert_or_update_database_view_filter_test() {
}

#[tokio::test]
async fn get_database_view_filter_by_field_id_test() {
let database_test = create_database_with_two_filters().await;
let filter_1 = database_test
.get_filter_by_field_id::<TestFilter>("v1", "f1")
.unwrap();
assert_eq!(filter_1.content, "hello filter");
}

#[tokio::test]
async fn insert_database_view_filter_with_occupied_field_id_test() {
async fn insert_database_view_filter_to_filtering_field_id_test() {
let database_test = create_database_with_two_filters().await;

// The field id "f1" is already occupied by existing filter. So this filter
// will be ignored
// Filter with id "filter_1" already filters based on "f1"
database_test.insert_filter(
"v1",
TestFilter {
id: "filter_3".to_string(),
field_id: "f1".to_string(),
field_type: Default::default(),
condition: 0,
content: "Override the existing filter".to_string(),
content: "Another filter".to_string(),
},
);

let filter_1 = database_test
.get_filter_by_field_id::<TestFilter>("v1", "f1")
let filter_3 = database_test
.get_filter::<TestFilter>("v1", "filter_3")
.unwrap();
assert_eq!(filter_1.content, "hello filter");
assert_eq!(filter_3.content, "Another filter");
}

#[tokio::test]
Expand Down

0 comments on commit 195fabd

Please sign in to comment.