33 lines
807 B
Rust
33 lines
807 B
Rust
use domain::errors::DomainError;
|
|
use domain::user::Timezone;
|
|
|
|
#[test]
|
|
fn valid_timezone_is_created() {
|
|
let tz = Timezone::new("Europe/Warsaw").unwrap();
|
|
assert_eq!(tz.value(), "Europe/Warsaw");
|
|
}
|
|
|
|
#[test]
|
|
fn timezone_trims_whitespace() {
|
|
let tz = Timezone::new(" America/New_York ").unwrap();
|
|
assert_eq!(tz.value(), "America/New_York");
|
|
}
|
|
|
|
#[test]
|
|
fn empty_timezone_is_rejected() {
|
|
let result = Timezone::new("");
|
|
assert!(matches!(result, Err(DomainError::InvalidInput(_))));
|
|
}
|
|
|
|
#[test]
|
|
fn timezone_without_slash_is_rejected() {
|
|
let result = Timezone::new("UTC");
|
|
assert!(matches!(result, Err(DomainError::InvalidInput(_))));
|
|
}
|
|
|
|
#[test]
|
|
fn from_persistence_bypasses_validation() {
|
|
let tz = Timezone::from_persistence("UTC".into());
|
|
assert_eq!(tz.value(), "UTC");
|
|
}
|