diff options
Diffstat (limited to '')
| -rw-r--r-- | testing/templates/match-enum-or.html | 8 | ||||
| -rw-r--r-- | testing/tests/matches.rs | 29 | 
2 files changed, 37 insertions, 0 deletions
diff --git a/testing/templates/match-enum-or.html b/testing/templates/match-enum-or.html new file mode 100644 index 0000000..ffd364d --- /dev/null +++ b/testing/templates/match-enum-or.html @@ -0,0 +1,8 @@ +The card is +{%- match suit %} +   {%- when Suit::Clubs or Suit::Spades -%} +     {{ " black" }} +   {%- when Suit::Diamonds or Suit::Hearts -%} +     {{ " red" }} +{%- endmatch %} + diff --git a/testing/tests/matches.rs b/testing/tests/matches.rs index f5ccb95..4507489 100644 --- a/testing/tests/matches.rs +++ b/testing/tests/matches.rs @@ -195,3 +195,32 @@ fn test_match_with_comment() {      let s = MatchWithComment { good: false };      assert_eq!(s.render().unwrap(), "bad");  } + +enum Suit { +    Clubs, +    Diamonds, +    Hearts, +    Spades, +} + +#[derive(Template)] +#[template(path = "match-enum-or.html")] +struct MatchEnumOrTemplate { +    suit: Suit, +} + +#[test] +fn test_match_enum_or() { +    let template = MatchEnumOrTemplate { suit: Suit::Clubs }; +    assert_eq!(template.render().unwrap(), "The card is black\n"); +    let template = MatchEnumOrTemplate { suit: Suit::Spades }; +    assert_eq!(template.render().unwrap(), "The card is black\n"); + +    let template = MatchEnumOrTemplate { suit: Suit::Hearts }; +    assert_eq!(template.render().unwrap(), "The card is red\n"); + +    let template = MatchEnumOrTemplate { +        suit: Suit::Diamonds, +    }; +    assert_eq!(template.render().unwrap(), "The card is red\n"); +}  | 
