diff options
author | René Kijewski <kijewski@library.vetmed.fu-berlin.de> | 2021-06-29 15:23:26 +0200 |
---|---|---|
committer | Dirkjan Ochtman <dirkjan@ochtman.nl> | 2021-07-01 10:24:32 +0200 |
commit | 83b03cd485694483df4b435979b7a3184a208e48 (patch) | |
tree | d1cf22241555e2f674e28af7e66ad43854c2ccb4 | |
parent | 06d2eee4a0cd9070444d9d166044de9ffe6ca330 (diff) | |
download | askama-83b03cd485694483df4b435979b7a3184a208e48.tar.gz askama-83b03cd485694483df4b435979b7a3184a208e48.tar.bz2 askama-83b03cd485694483df4b435979b7a3184a208e48.zip |
Add "if let" tests
-rw-r--r-- | testing/templates/if-let-else.html | 7 | ||||
-rw-r--r-- | testing/templates/if-let-shadowing.html | 1 | ||||
-rw-r--r-- | testing/templates/if-let-struct.html | 1 | ||||
-rw-r--r-- | testing/templates/if-let.html | 1 | ||||
-rw-r--r-- | testing/tests/if_let.rs | 109 |
5 files changed, 119 insertions, 0 deletions
diff --git a/testing/templates/if-let-else.html b/testing/templates/if-let-else.html new file mode 100644 index 0000000..e6b43ca --- /dev/null +++ b/testing/templates/if-let-else.html @@ -0,0 +1,7 @@ +{%- if !cond -%} + !cond +{%- else if let Ok(ok) = value -%} + {{ ok }} +{%- else if let Err(err) = value -%} + {{ err }} +{%- endif -%} diff --git a/testing/templates/if-let-shadowing.html b/testing/templates/if-let-shadowing.html new file mode 100644 index 0000000..7f3d50f --- /dev/null +++ b/testing/templates/if-let-shadowing.html @@ -0,0 +1 @@ +{% if let Some(text) = text %}{{ text }}{% endif %} diff --git a/testing/templates/if-let-struct.html b/testing/templates/if-let-struct.html new file mode 100644 index 0000000..53232f7 --- /dev/null +++ b/testing/templates/if-let-struct.html @@ -0,0 +1 @@ +{% if let Digits { one, two, three } = digits %}{{ one }} {{ two }} {{ three }}{% endif %} diff --git a/testing/templates/if-let.html b/testing/templates/if-let.html new file mode 100644 index 0000000..ff4006f --- /dev/null +++ b/testing/templates/if-let.html @@ -0,0 +1 @@ +{% if let Some(some_text) = text %}{{ some_text }}{% endif %} diff --git a/testing/tests/if_let.rs b/testing/tests/if_let.rs new file mode 100644 index 0000000..3e4e2b5 --- /dev/null +++ b/testing/tests/if_let.rs @@ -0,0 +1,109 @@ +use askama::Template; + +#[derive(Template)] +#[template(path = "if-let.html")] +struct IfLetTemplate { + text: Option<&'static str>, +} + +#[test] +fn test_if_let() { + let s = IfLetTemplate { + text: Some("hello"), + }; + assert_eq!(s.render().unwrap(), "hello"); + + let t = IfLetTemplate { text: None }; + assert_eq!(t.render().unwrap(), ""); +} + +#[derive(Template)] +#[template(path = "if-let-shadowing.html")] +struct IfLetShadowingTemplate { + text: Option<&'static str>, +} + +#[test] +fn test_if_let_shadowing() { + let s = IfLetShadowingTemplate { + text: Some("hello"), + }; + assert_eq!(s.render().unwrap(), "hello"); + + let t = IfLetShadowingTemplate { text: None }; + assert_eq!(t.render().unwrap(), ""); +} + +struct Digits { + one: i32, + two: i32, + three: i32, +} + +#[derive(Template)] +#[template(path = "if-let-struct.html")] +struct IfLetStruct { + digits: Digits, +} + +#[test] +fn test_if_let_struct() { + let digits = Digits { + one: 1, + two: 2, + three: 3, + }; + let s = IfLetStruct { digits }; + assert_eq!(s.render().unwrap(), "1 2 3"); +} + +#[derive(Template)] +#[template(path = "if-let-struct.html")] +struct IfLetStructRef<'a> { + digits: &'a Digits, +} + +#[test] +fn test_if_let_struct_ref() { + let digits = Digits { + one: 1, + two: 2, + three: 3, + }; + let s = IfLetStructRef { digits: &digits }; + assert_eq!(s.render().unwrap(), "1 2 3"); +} + +#[derive(Template)] +#[template(path = "if-let-else.html")] +struct IfLetElse { + cond: bool, + value: Result<i32, &'static str>, +} + +#[test] +fn test_if_let_else() { + let s = IfLetElse { + cond: false, + value: Ok(4711), + }; + assert_eq!(s.render().unwrap(), "!cond"); + + let s = IfLetElse { + cond: true, + value: Ok(4711), + }; + assert_eq!(s.render().unwrap(), "4711"); + + let s = IfLetElse { + cond: false, + value: Err("fail"), + }; + assert_eq!(s.render().unwrap(), "!cond"); + + let s = IfLetElse { + cond: true, + value: Err("fail"), + }; + assert_eq!(s.render().unwrap(), "fail"); +} |