tui/src/chatwidget/tokens_tests.rs
38 lines
use super::*;use codex_app_server_protocol::AccountTokenUsageSummary;use pretty_assertions::assert_eq;#[test]fn loaded_state_freezes_chart_anchor_date_at_completion() { let state = Arc::new(RwLock::new(TokenActivityState::Loading)); let handle = TokenActivityHandle { state: Arc::clone(&state), }; let today = NaiveDate::from_ymd_opt(/*year*/ 2026, /*month*/ 5, /*day*/ 29).expect("valid date"); handle.finish_with_today( Ok(GetAccountTokenUsageResponse { summary: AccountTokenUsageSummary { lifetime_tokens: None, peak_daily_tokens: None, longest_running_turn_sec: None, current_streak_days: None, longest_streak_days: None, }, daily_usage_buckets: None, }), today, ); let state = state.read().expect("token activity state poisoned"); match &*state { TokenActivityState::Loaded { today: loaded_today, .. } => { assert_eq!(*loaded_today, today); } other => panic!("expected loaded state, got {other:?}"), }}