diff options
Diffstat (limited to 'src/models/properties')
-rw-r--r-- | src/models/properties/tests.rs | 24 | ||||
-rw-r--r-- | src/models/properties/tests/rollup_property.json | 32 |
2 files changed, 55 insertions, 1 deletions
diff --git a/src/models/properties/tests.rs b/src/models/properties/tests.rs index 8fe5b42..022f080 100644 --- a/src/models/properties/tests.rs +++ b/src/models/properties/tests.rs @@ -1,4 +1,4 @@ -use super::{DateOrDateTime, PropertyValue}; +use super::{DateOrDateTime, PropertyValue, RollupPropertyValue, RollupValue}; use chrono::NaiveDate; #[test] @@ -32,3 +32,25 @@ fn parse_text_property_with_link() { let _property: PropertyValue = serde_json::from_str(include_str!("tests/text_with_link.json")).unwrap(); } + +#[test] +fn parse_rollup_property() { + let property: PropertyValue = + serde_json::from_str(include_str!("tests/rollup_property.json")).unwrap(); + + assert!(matches!( + property, + PropertyValue::Rollup { + rollup: Some(RollupValue::Array { .. }), + .. + } + )); + + if let PropertyValue::Rollup { + rollup: Some(RollupValue::Array { array }), + .. + } = property + { + assert!(matches!(array[0], RollupPropertyValue::Text { .. })) + } +} diff --git a/src/models/properties/tests/rollup_property.json b/src/models/properties/tests/rollup_property.json new file mode 100644 index 0000000..c80d33b --- /dev/null +++ b/src/models/properties/tests/rollup_property.json @@ -0,0 +1,32 @@ +{ + "id": "R%7Cm%3F", + "type": "rollup", + "rollup": { + "type": "array", + "array": [ + { + "type": "rich_text", + "rich_text": [ + { + "type": "text", + "text": { + "content": "personal", + "link": null + }, + "annotations": { + "bold": false, + "italic": false, + "strikethrough": false, + "underline": false, + "code": false, + "color": "default" + }, + "plain_text": "personal", + "href": null + } + ] + } + ], + "function": "show_original" + } +} |