use super::*;
use super::tests_helpers::{render_to_string, make_scan_result};
#[test]
fn e2e_t504_status_bar_shows_daemon_indicator() {
crate::theme::init_theme("dark");
let app = App::new(crate::config::TuiConfig::default());
let buf = render_to_string(&app, 120, 40);
assert!(buf.contains("\u{25cb}") || buf.contains("\u{25cf}"), "Status bar should show daemon indicator");
}
#[test]
fn e2e_t504_status_bar_shows_view_indicator() {
crate::theme::init_theme("dark");
let mut app = App::new(crate::config::TuiConfig::default());
let buf = render_to_string(&app, 120, 40);
assert!(buf.contains("[1 Dashboard]"), "Status bar should show [1 Dashboard]");
app.view_state = ViewState::Log;
let buf = render_to_string(&app, 120, 40);
assert!(buf.contains("[8 Log]"), "Status bar should show [8 Log]");
app.view_state = ViewState::Scan;
let buf = render_to_string(&app, 120, 40);
assert!(buf.contains("[2 Scan]"), "Status bar should show [2 Scan]");
}
#[test]
fn e2e_t504_status_bar_shows_score_badge() {
crate::theme::init_theme("dark");
let mut app = App::new(crate::config::TuiConfig::default());
app.last_scan = Some(make_scan_result(75.0, crate::types::Zone::Yellow));
let buf = render_to_string(&app, 120, 40);
assert!(buf.contains("[75]"), "Status bar should show score badge [75]");
}
#[test]
fn e2e_t504_status_bar_watch_indicator_visible_when_active() {
crate::theme::init_theme("dark");
let mut app = App::new(crate::config::TuiConfig::default());
app.watch_active = false;
assert!(!app.watch_active);
app.watch_active = true;
assert!(app.watch_active);
}
#[test]
fn e2e_t504_status_bar_context_indicator() {
crate::theme::init_theme("dark");
let app = App::new(crate::config::TuiConfig::default());
let buf = render_to_string(&app, 120, 40);
assert!(buf.contains("[ctx:"), "Status bar should show context usage [ctx:N%]");
}
#[test]
fn e2e_t504_status_bar_daemon_indicator() {
crate::theme::init_theme("dark");
let app = App::new(crate::config::TuiConfig::default());
let buf = render_to_string(&app, 120, 40);
assert!(
buf.contains('\u{25cf}') || buf.contains('\u{25cb}') || buf.contains('\u{2717}'),
"Status bar should show daemon connection indicator"
);
}
#[test]
fn e2e_t504_status_bar_engine_indicator() {
crate::theme::init_theme("dark");
let mut app = App::new(crate::config::TuiConfig::default());
app.engine_status = crate::types::EngineConnectionStatus::Connected;
let buf = render_to_string(&app, 120, 40);
assert!(buf.contains('\u{25cf}'), "Connected engine should show filled circle");
app.engine_status = crate::types::EngineConnectionStatus::Connecting;
let buf = render_to_string(&app, 120, 40);
assert!(buf.contains('\u{25cb}'), "Connecting engine should show hollow circle");
app.engine_status = crate::types::EngineConnectionStatus::Error;
let buf = render_to_string(&app, 120, 40);
assert!(buf.contains('\u{2717}'), "Error engine should show cross mark");
}