use glacier_ui::GlacierUI;
fn boot() -> GlacierUI {
let crate_dir = env!("CARGO_MANIFEST_DIR");
std::env::set_current_dir(crate_dir).expect("cd workspace root");
unsafe {
std::env::set_var("GLACIER_LUAU_PATH", "views/scripts");
}
let mut m = GlacierUI::new();
m.register_component("access_key", "tests/fixtures/access_key_fixture.gvb")
.expect("registrar a fixture");
m.set_initial_screen("access_key");
m
}
#[test]
fn encode_matches_the_daemon_the_webui_and_python() {
let m = boot();
let g = |k: &str| m.context().get(k).cloned().unwrap_or_default();
assert_eq!(g("key_encoded"), "MTI3LjAuMC4xOjk6Ong=");
assert_eq!(g("key_encoded_default_port"), "YS5iOjQ0Mzo6eA==");
}
#[test]
fn decode_round_trips_and_explains_bad_keys() {
let m = boot();
let g = |k: &str| m.context().get(k).cloned().unwrap_or_default();
assert_eq!(
g("key_round_trip"),
"a.b:9797|tok-123_ABC rustploy-ms.itemize.com.br:9797|tok-123_ABC [::1]:9797|tok-123_ABC"
);
assert_eq!(g("key_from_python"), "a.b:9797|~?");
assert_eq!(g("key_url_safe"), "a.b:9797|~?");
assert_eq!(g("key_without_token"), "localhost:9797|");
assert!(g("key_missing_prefix").contains("só o token"), "{}", g("key_missing_prefix"));
assert!(g("key_corrupted").contains("corrompido"), "{}", g("key_corrupted"));
assert!(g("key_hint").starts_with("a.b:9797 · "), "{}", g("key_hint"));
}