mod common;
use common::init_repo;
use gwm::tui::theme::Theme;
use gwm::tui::App;
use ratatui::style::Color;
#[test]
fn app_theme_defaults_when_no_config() {
let (dir, _) = init_repo();
let app = App::new_at_layered(Some(dir.path()), None).unwrap();
assert_eq!(app.theme, Theme::default());
assert_eq!(app.theme.focus, Color::Cyan);
}
#[test]
fn app_theme_reflects_preset_from_gwm_toml() {
let (dir, _) = init_repo();
std::fs::write(
dir.path().join(".gwm.toml"),
r#"
[theme]
preset = "catppuccin"
"#,
)
.unwrap();
let app = App::new_at_layered(Some(dir.path()), None).unwrap();
assert_ne!(app.theme, Theme::default(), "preset must change at least one role");
}
#[test]
fn app_theme_reflects_per_role_override_from_gwm_toml() {
let (dir, _) = init_repo();
std::fs::write(
dir.path().join(".gwm.toml"),
r#"
[theme]
focus = "red"
"#,
)
.unwrap();
let app = App::new_at_layered(Some(dir.path()), None).unwrap();
assert_eq!(app.theme.focus, Color::Red);
assert_eq!(app.theme.branch, Theme::default().branch);
}