diff options
Diffstat (limited to '')
| -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"); +}  | 
