diff options
author | 2021-08-29 12:59:04 -0700 | |
---|---|---|
committer | 2021-08-29 12:59:04 -0700 | |
commit | 1c22088640e5deeadd61017bd90920b652685b5f (patch) | |
tree | 59d110a7c8792c39e0c1ea180fa972eee1c4662d /src/models/properties | |
parent | 8d5779a661f4537ef7d87a44bdfbf240eb054ff1 (diff) | |
download | notion-1c22088640e5deeadd61017bd90920b652685b5f.tar.gz notion-1c22088640e5deeadd61017bd90920b652685b5f.tar.zst notion-1c22088640e5deeadd61017bd90920b652685b5f.zip |
Notion API Version 2021-08-16 support; fix a bunch of modling errors as well
Diffstat (limited to 'src/models/properties')
-rw-r--r-- | src/models/properties/formulas.rs | 27 | ||||
-rw-r--r-- | src/models/properties/tests.rs | 28 | ||||
-rw-r--r-- | src/models/properties/tests/date_property.json | 8 | ||||
-rw-r--r-- | src/models/properties/tests/formula_date_value.json | 11 | ||||
-rw-r--r-- | src/models/properties/tests/formula_number_value.json | 8 | ||||
-rw-r--r-- | src/models/properties/tests/null_select_property.json | 5 | ||||
-rw-r--r-- | src/models/properties/tests/select_property.json | 9 |
7 files changed, 96 insertions, 0 deletions
diff --git a/src/models/properties/formulas.rs b/src/models/properties/formulas.rs new file mode 100644 index 0000000..20bc7f4 --- /dev/null +++ b/src/models/properties/formulas.rs @@ -0,0 +1,27 @@ +#[cfg(test)] +mod tests { + use crate::models::properties::{FormulaResultValue, PropertyValue}; + + #[test] + fn parse_number_formula_prop() { + let _property: PropertyValue = + serde_json::from_str(include_str!("tests/formula_number_value.json")).unwrap(); + } + + #[test] + fn parse_date_formula_prop() { + let _property: PropertyValue = + serde_json::from_str(include_str!("tests/formula_date_value.json")).unwrap(); + } + + #[test] + fn parse_number_formula() { + let _value: FormulaResultValue = serde_json::from_str( + r#"{ + "type": "number", + "number": 0 + }"#, + ) + .unwrap(); + } +} diff --git a/src/models/properties/tests.rs b/src/models/properties/tests.rs new file mode 100644 index 0000000..23b376d --- /dev/null +++ b/src/models/properties/tests.rs @@ -0,0 +1,28 @@ +use super::{DateOrDateTime, PropertyValue}; +use chrono::NaiveDate; + +#[test] +fn verify_date_parsing() { + let date = NaiveDate::from_ymd(2021, 01, 02); + let result = serde_json::to_string(&DateOrDateTime::Date(date)).unwrap(); + let parsed: DateOrDateTime = serde_json::from_str(&result).unwrap(); + println!("{:?}", parsed); +} + +#[test] +fn parse_date_property() { + let _property: PropertyValue = + serde_json::from_str(include_str!("tests/date_property.json")).unwrap(); +} + +#[test] +fn parse_null_select_property() { + let _property: PropertyValue = + serde_json::from_str(include_str!("tests/null_select_property.json")).unwrap(); +} + +#[test] +fn parse_select_property() { + let _property: PropertyValue = + serde_json::from_str(include_str!("tests/select_property.json")).unwrap(); +} diff --git a/src/models/properties/tests/date_property.json b/src/models/properties/tests/date_property.json new file mode 100644 index 0000000..fe2b04f --- /dev/null +++ b/src/models/properties/tests/date_property.json @@ -0,0 +1,8 @@ +{ + "id": "VXfM", + "type": "date", + "date": { + "start": "2021-09-30", + "end": null + } +} diff --git a/src/models/properties/tests/formula_date_value.json b/src/models/properties/tests/formula_date_value.json new file mode 100644 index 0000000..84728c5 --- /dev/null +++ b/src/models/properties/tests/formula_date_value.json @@ -0,0 +1,11 @@ +{ + "id": "7*%269", + "type": "formula", + "formula": { + "type": "date", + "date": { + "start": "2021-09-30", + "end": null + } + } +} diff --git a/src/models/properties/tests/formula_number_value.json b/src/models/properties/tests/formula_number_value.json new file mode 100644 index 0000000..2a831e3 --- /dev/null +++ b/src/models/properties/tests/formula_number_value.json @@ -0,0 +1,8 @@ +{ + "id": "abc", + "type": "formula", + "formula": { + "type": "number", + "number": 0 + } +} diff --git a/src/models/properties/tests/null_select_property.json b/src/models/properties/tests/null_select_property.json new file mode 100644 index 0000000..e0ed24e --- /dev/null +++ b/src/models/properties/tests/null_select_property.json @@ -0,0 +1,5 @@ +{ + "id": "uX", + "type": "select", + "select": null +} diff --git a/src/models/properties/tests/select_property.json b/src/models/properties/tests/select_property.json new file mode 100644 index 0000000..db65bdf --- /dev/null +++ b/src/models/properties/tests/select_property.json @@ -0,0 +1,9 @@ +{ + "id": "uX", + "type": "select", + "select": { + "id": "9c", + "name": "Reserved", + "color": "green" + } +} |