1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
use super::util;
#[derive(Debug, garde::Validate)]
struct Test<'a> {
#[garde(prefix("test"), ascii, length(min = 10, max = 100))]
field: &'a str,
#[garde(inner(prefix("test"), ascii, length(min = 10, max = 100)))]
inner: &'a [&'a str],
}
#[test]
fn multi_rule_valid() {
util::check_ok(
&[
Test {
field: "test_test_test",
inner: &["test_test_test"]
},
Test {
field: "test_some_other_ascii_but_less_than_100_chars",
inner: &["test_some_other_ascii_but_less_than_100_chars"]
},
Test {
// "test" + 'a' * 6
field: "testaaaaaa",
inner: &["testaaaaaa"]
},
Test {
// "test" + 'a' * 96
field: "testaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
inner: &["testaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
},
],
&(),
)
}
#[test]
fn multi_rule_invalid() {
util::check_fail!(
&[
Test {
field: "text which does not begin with `test`",
inner: &["text which does not begin with `test`"],
},
Test {
field: "non-ascii 😂😂😂",
inner: &["non-ascii 😂😂😂"],
},
Test {
// 'a' * 9
field: "aaaaaaaaa",
inner: &["aaaaaaaaa"],
},
Test {
// 'a' * 101
field: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
inner: &["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
},
],
&()
)
}
|