37 lines
1.7 KiB
Rust
37 lines
1.7 KiB
Rust
// file: crates/ksp-app-solprices-desk/unit_tests/splash.rs
|
|
// version: 1
|
|
|
|
#[test]
|
|
fn fallback_splash_settings_are_short_and_ordered() {
|
|
let settings = crate::SplashSettings::fallback();
|
|
assert_eq!(settings.fade_in_ms(), 300);
|
|
assert_eq!(settings.minimum_ms(), 1200);
|
|
assert_eq!(settings.fade_out_ms(), 300);
|
|
assert_eq!(settings.expected_backend_lifecycle_ms(), 1800);
|
|
assert_eq!(settings.fade_in_source(), "fallback");
|
|
assert_eq!(settings.minimum_source(), "fallback");
|
|
assert_eq!(settings.fade_out_source(), "fallback");
|
|
}
|
|
|
|
#[test]
|
|
fn splash_order_contract_keeps_action_message_status_and_duration() {
|
|
let order =
|
|
crate::SplashOrderDto::new("add_message", std::option::Option::Some("ready"), std::option::Option::Some("success"), std::option::Option::Some(300));
|
|
assert_eq!(order.action, "add_message");
|
|
assert_eq!(order.message.as_deref(), std::option::Option::Some("ready"));
|
|
assert_eq!(order.status.as_deref(), std::option::Option::Some("success"));
|
|
assert_eq!(order.duration_ms, std::option::Option::Some(300));
|
|
}
|
|
|
|
#[test]
|
|
fn splash_duration_parser_rejects_invalid_or_unbounded_values() {
|
|
let malformed = super::parse_u64_setting("KSP_DESK_SPLASH_MINIMUM_MS", "invalid", 60_000);
|
|
let oversized_minimum = super::parse_u64_setting("KSP_DESK_SPLASH_MINIMUM_MS", "60001", 60_000);
|
|
let oversized_fade_in = super::parse_u32_setting("KSP_DESK_SPLASH_FADE_IN_MS", "10001", 10_000);
|
|
let oversized_fade_out = super::parse_u32_setting("KSP_DESK_SPLASH_FADE_OUT_MS", "10001", 10_000);
|
|
assert!(malformed.is_err());
|
|
assert!(oversized_minimum.is_err());
|
|
assert!(oversized_fade_in.is_err());
|
|
assert!(oversized_fade_out.is_err());
|
|
}
|