diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-02 16:09:19 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-02 16:09:19 +0300 |
| commit | d08e44686d8b19bd9555cc99ec9068d9fde05f16 (patch) | |
| tree | ca2f34d2117efbf770095c437f9d6402c24d9fb3 /src/client/tests/mod.rs | |
| parent | 8633a398e653eee47b375c963996c78a8a14aa48 (diff) | |
fix(client): detach when terminal geometry is unavailable (#3531)
refs #3519
Diffstat (limited to 'src/client/tests/mod.rs')
| -rw-r--r-- | src/client/tests/mod.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/client/tests/mod.rs b/src/client/tests/mod.rs index d8f71a84..5d789444 100644 --- a/src/client/tests/mod.rs +++ b/src/client/tests/mod.rs @@ -18,6 +18,36 @@ fn resize_signal_reports_even_when_polled_size_is_unchanged() { } #[test] +fn unavailable_terminal_grid_is_not_fabricated() { + let reported_cell_size = AtomicU64::new(0); + let err = current_terminal_geometry_with(false, false, &reported_cell_size, None, None, || { + Err(io::Error::new( + io::ErrorKind::NotConnected, + "terminal is gone", + )) + }) + .expect_err("an unavailable terminal must not produce fallback geometry"); + + assert_eq!(err.kind(), io::ErrorKind::NotConnected); +} + +#[test] +fn missing_pixel_geometry_keeps_a_valid_terminal_grid() { + let reported_cell_size = AtomicU64::new(0); + let geometry = current_terminal_geometry_with( + true, + true, + &reported_cell_size, + Some((9, 18)), + None, + || Ok((80, 24)), + ) + .expect("grid geometry remains valid without pixel dimensions"); + + assert_eq!(geometry, (80, 24, 9, 18, false)); +} + +#[test] fn direct_graphics_profile_is_narrow_and_transport_safe() { for (program, term, kitty, expected) in [ ("ghostty", "", false, true), |
