diff options
Diffstat (limited to 'validator_derive/tests/test_derive.rs')
| -rw-r--r-- | validator_derive/tests/test_derive.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/validator_derive/tests/test_derive.rs b/validator_derive/tests/test_derive.rs index 1e310b1..7cc63eb 100644 --- a/validator_derive/tests/test_derive.rs +++ b/validator_derive/tests/test_derive.rs @@ -21,6 +21,14 @@ struct SignupData { age: u32, } +#[derive(Debug, Validate)] +struct PasswordData { + #[validate(must_match = "password2")] + password: String, + password2: String, +} + + fn validate_unique_username(username: &str) -> Option<String> { if username == "xXxShad0wxXx" { return Some("terrible_username".to_string()); @@ -134,3 +142,22 @@ fn test_custom_validation_error() { assert!(errs.contains_key("firstName")); assert_eq!(errs["firstName"], vec!["terrible_username".to_string()]); } + +#[test] +fn test_must_match_can_work() { + let data = PasswordData { + password: "passw0rd".to_string(), + password2: "passw0rd".to_string(), + }; + assert!(data.validate().is_ok()) +} + + +#[test] +fn test_must_match_can_fail() { + let data = PasswordData { + password: "passw0rd".to_string(), + password2: "password".to_string(), + }; + assert!(data.validate().is_err()) +} |
