use super::*;
use crate::output::{
ActivityEvent, ActivityId, ActivityKind, ActivityMetadata, ActivityStatus, OutputEvent,
ToolDisplaySummary, ToolStatus,
};
use ratatui::{backend::TestBackend, buffer::Buffer, style::Modifier};
use super::test_support::{find_text, find_text_in_area};
const TEST_PICKER_VISIBLE_ROWS: usize = crate::tui::input::DEFAULT_PICKER_VISIBLE_ROWS as usize;
fn rendered_text_in_area(buffer: &Buffer, area: Rect) -> String {
let mut rendered = String::new();
for y in area.y..area.y + area.height {
for x in area.x..area.x + area.width {
rendered.push_str(buffer[(x, y)].symbol());
}
rendered.push('\n');
}
rendered
}
fn assert_square_corners(buffer: &Buffer, area: Rect) {
assert_eq!(buffer[(area.x, area.y)].symbol(), "┌");
assert_eq!(buffer[(area.x + area.width - 1, area.y)].symbol(), "┐");
assert_eq!(buffer[(area.x, area.y + area.height - 1)].symbol(), "└");
assert_eq!(
buffer[(area.x + area.width - 1, area.y + area.height - 1)].symbol(),
"┘"
);
}
fn state_with_autocomplete() -> MissionControlState {
let mut state = MissionControlState {
input: "/n".to_string(),
prompt_cursor: 2,
focus_pane: crate::tui::state::TuiFocusPane::Prompt,
..Default::default()
};
state.recompute_autocomplete(&[
crate::tui::state::AutocompleteCandidate::slash_command("new", "start a new session"),
crate::tui::state::AutocompleteCandidate::slash_command("quit", "exit magi-code"),
]);
state
}
mod activity;
mod help;
mod layout;
mod misc;
mod modals;
mod prompt;
mod transcript;