mirror of
https://github.com/openai/codex.git
synced 2026-04-26 15:45:02 +00:00
## Summary - reduce public module visibility across Rust crates, preferring private or crate-private modules with explicit crate-root public exports - update external call sites and tests to use the intended public crate APIs instead of reaching through module trees - add the module visibility guideline to AGENTS.md ## Validation - `cargo check --workspace --all-targets --message-format=short` passed before the final fix/format pass - `just fix` completed successfully - `just fmt` completed successfully - `git diff --check` passed
46 lines
1.5 KiB
Rust
46 lines
1.5 KiB
Rust
use crate::test_backend::VT100Backend;
|
|
use ratatui::layout::Rect;
|
|
use ratatui::text::Line;
|
|
|
|
#[test]
|
|
fn live_001_commit_on_overflow() {
|
|
let backend = VT100Backend::new(/*width*/ 20, /*height*/ 6);
|
|
let mut term = match codex_tui::Terminal::with_options(backend) {
|
|
Ok(t) => t,
|
|
Err(e) => panic!("failed to construct terminal: {e}"),
|
|
};
|
|
let area = Rect::new(
|
|
/*x*/ 0, /*y*/ 5, /*width*/ 20, /*height*/ 1,
|
|
);
|
|
term.set_viewport_area(area);
|
|
|
|
// Build 5 explicit rows at width 20.
|
|
let mut rb = codex_tui::RowBuilder::new(/*target_width*/ 20);
|
|
rb.push_fragment("one\n");
|
|
rb.push_fragment("two\n");
|
|
rb.push_fragment("three\n");
|
|
rb.push_fragment("four\n");
|
|
rb.push_fragment("five\n");
|
|
|
|
// Keep the last 3 in the live ring; commit the first 2.
|
|
let commit_rows = rb.drain_commit_ready(/*max_keep*/ 3);
|
|
let lines: Vec<Line<'static>> = commit_rows.into_iter().map(|r| r.text.into()).collect();
|
|
|
|
codex_tui::insert_history_lines(&mut term, lines)
|
|
.expect("Failed to insert history lines in test");
|
|
|
|
let screen = term.backend().vt100().screen();
|
|
|
|
// The words "one" and "two" should appear above the viewport.
|
|
let joined = screen.contents();
|
|
assert!(
|
|
joined.contains("one"),
|
|
"expected committed 'one' to be visible\n{joined}"
|
|
);
|
|
assert!(
|
|
joined.contains("two"),
|
|
"expected committed 'two' to be visible\n{joined}"
|
|
);
|
|
// The last three (three,four,five) remain in the live ring, not committed here.
|
|
}
|