Skip to content

Commit 8c7b0bd

Browse files
committed
fix: unit test
1 parent 5b2b50d commit 8c7b0bd

File tree

10 files changed

+750
-602
lines changed

10 files changed

+750
-602
lines changed

frontend/rust-lib/flowy-grid/src/services/field/type_options/checkbox_type_option.rs

Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
use crate::impl_type_option;
22
use crate::services::field::{BoxTypeOptionBuilder, TypeOptionBuilder};
3-
use crate::services::row::{CellContentChangeset, CellDataOperation, DecodedCellData, TypeOptionCellData};
3+
use crate::services::row::{CellContentChangeset, CellDataOperation, DecodedCellData};
44
use bytes::Bytes;
55
use flowy_derive::ProtoBuf;
6-
use flowy_error::FlowyError;
6+
use flowy_error::{FlowyError, FlowyResult};
77
use flowy_grid_data_model::entities::{
88
CellMeta, FieldMeta, FieldType, TypeOptionDataDeserializer, TypeOptionDataEntry,
99
};
1010

1111
use serde::{Deserialize, Serialize};
12-
use std::str::FromStr;
1312

1413
#[derive(Default)]
1514
pub struct CheckboxTypeOptionBuilder(CheckboxTypeOption);
@@ -43,23 +42,26 @@ impl_type_option!(CheckboxTypeOption, FieldType::Checkbox);
4342
const YES: &str = "Yes";
4443
const NO: &str = "No";
4544

46-
impl CellDataOperation<String> for CheckboxTypeOption {
47-
fn decode_cell_data<T: Into<TypeOptionCellData>>(
45+
impl CellDataOperation<String, String> for CheckboxTypeOption {
46+
fn decode_cell_data<T>(
4847
&self,
49-
type_option_cell_data: T,
48+
encoded_data: T,
5049
decoded_field_type: &FieldType,
5150
_field_meta: &FieldMeta,
52-
) -> DecodedCellData {
53-
let type_option_cell_data = type_option_cell_data.into();
51+
) -> FlowyResult<DecodedCellData>
52+
where
53+
T: Into<String>,
54+
{
5455
if !decoded_field_type.is_checkbox() {
55-
return DecodedCellData::default();
56+
return Ok(DecodedCellData::default());
5657
}
57-
let cell_data = type_option_cell_data.data;
58-
if cell_data == YES || cell_data == NO {
59-
return DecodedCellData::from_content(cell_data);
58+
59+
let encoded_data = encoded_data.into();
60+
if encoded_data == YES || encoded_data == NO {
61+
return Ok(DecodedCellData::from_content(encoded_data));
6062
}
6163

62-
DecodedCellData::default()
64+
Ok(DecodedCellData::default())
6365
}
6466

6567
fn apply_changeset<C>(&self, changeset: C, _cell_meta: Option<CellMeta>) -> Result<String, FlowyError>
@@ -91,60 +93,48 @@ fn string_to_bool(bool_str: &str) -> bool {
9193
#[cfg(test)]
9294
mod tests {
9395
use crate::services::field::type_options::checkbox_type_option::{NO, YES};
94-
use crate::services::field::CheckboxTypeOption;
96+
9597
use crate::services::field::FieldBuilder;
96-
use crate::services::row::{apply_cell_data_changeset, decode_cell_data, CellDataOperation};
97-
use diesel::types::IsNull::No;
98+
use crate::services::row::{apply_cell_data_changeset, decode_cell_data_from_type_option_cell_data};
99+
98100
use flowy_grid_data_model::entities::FieldType;
99101

100102
#[test]
101103
fn checkout_box_description_test() {
102104
let field_meta = FieldBuilder::from_field_type(&FieldType::Checkbox).build();
103105
let data = apply_cell_data_changeset("true", None, &field_meta).unwrap();
104106
assert_eq!(
105-
decode_cell_data(data, &field_meta, &field_meta.field_type)
106-
.unwrap()
107-
.content,
107+
decode_cell_data_from_type_option_cell_data(data, &field_meta, &field_meta.field_type).content,
108108
YES
109109
);
110110

111111
let data = apply_cell_data_changeset("1", None, &field_meta).unwrap();
112112
assert_eq!(
113-
decode_cell_data(data, &field_meta, &field_meta.field_type)
114-
.unwrap()
115-
.content,
113+
decode_cell_data_from_type_option_cell_data(data, &field_meta, &field_meta.field_type).content,
116114
YES
117115
);
118116

119117
let data = apply_cell_data_changeset("yes", None, &field_meta).unwrap();
120118
assert_eq!(
121-
decode_cell_data(data, &field_meta, &field_meta.field_type)
122-
.unwrap()
123-
.content,
119+
decode_cell_data_from_type_option_cell_data(data, &field_meta, &field_meta.field_type).content,
124120
YES
125121
);
126122

127123
let data = apply_cell_data_changeset("false", None, &field_meta).unwrap();
128124
assert_eq!(
129-
decode_cell_data(data, &field_meta, &field_meta.field_type)
130-
.unwrap()
131-
.content,
125+
decode_cell_data_from_type_option_cell_data(data, &field_meta, &field_meta.field_type).content,
132126
NO
133127
);
134128

135129
let data = apply_cell_data_changeset("no", None, &field_meta).unwrap();
136130
assert_eq!(
137-
decode_cell_data(data, &field_meta, &field_meta.field_type)
138-
.unwrap()
139-
.content,
131+
decode_cell_data_from_type_option_cell_data(data, &field_meta, &field_meta.field_type).content,
140132
NO
141133
);
142134

143135
let data = apply_cell_data_changeset("12", None, &field_meta).unwrap();
144136
assert_eq!(
145-
decode_cell_data(data, &field_meta, &field_meta.field_type)
146-
.unwrap()
147-
.content,
137+
decode_cell_data_from_type_option_cell_data(data, &field_meta, &field_meta.field_type).content,
148138
NO
149139
);
150140
}

0 commit comments

Comments
 (0)