summaryrefslogtreecommitdiff
path: root/src/models/properties
diff options
context:
space:
mode:
Diffstat (limited to 'src/models/properties')
-rw-r--r--src/models/properties/tests.rs24
-rw-r--r--src/models/properties/tests/rollup_property.json32
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"
+ }
+}