mirror of
https://github.com/openai/codex.git
synced 2026-04-27 08:05:51 +00:00
## Why The remaining `vt100-tests` and `debug-logs` features in `codex-tui` were only gating test-only and debug-only behavior. Those feature toggles add Cargo and Bazel permutations without buying anything, and they make it easier for more crate features to linger in the workspace. ## What changed - delete `vt100-tests` and `debug-logs` from `codex-tui` - always compile the VT100 integration tests in the TUI test target instead of hiding them behind a Cargo feature - remove the unused textarea debug logging branch instead of replacing it with another gate - add the required argument-comment annotations in the VT100 tests now that Bazel sees those callsites during linting - shrink the manifest verifier allowlist again so only the remaining real feature exceptions stay permitted ## How tested - `cargo test -p codex-tui` - `just argument-comment-lint -p codex-tui`
46 lines
1.6 KiB
Rust
46 lines
1.6 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::custom_terminal::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::live_wrap::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::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.
|
|
}
|