aboutsummaryrefslogtreecommitdiff
path: root/src/server/headless.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/headless.rs')
-rw-r--r--src/server/headless.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/server/headless.rs b/src/server/headless.rs
index 0b25dd97..c1644dcd 100644
--- a/src/server/headless.rs
+++ b/src/server/headless.rs
@@ -8425,6 +8425,46 @@ next_tab = ""
}
#[tokio::test]
+ async fn command_mode_updates_headless_client_keyboard_flags() {
+ let mut server = test_headless_server();
+ let (client_tx, client_control_rx, _client_rx) = test_client_writer();
+ server.clients.insert(
+ 1,
+ ClientConnection::new(
+ (80, 24),
+ crate::kitty_graphics::HostCellSize::default(),
+ crate::terminal_theme::TerminalTheme::default(),
+ None,
+ 1,
+ RenderEncoding::SemanticFrame,
+ Some(client_tx),
+ ),
+ );
+
+ server.app.state.mode = crate::app::Mode::Prefix;
+ server.stream_host_keyboard_enhancement_flags();
+ assert!(matches!(
+ read_server_message(
+ client_control_rx
+ .recv_timeout(Duration::from_millis(100))
+ .expect("command-mode keyboard enhancement message")
+ ),
+ ServerMessage::KittyKeyboardReportAll { enabled: true }
+ ));
+
+ server.app.state.mode = crate::app::Mode::Terminal;
+ server.stream_host_keyboard_enhancement_flags();
+ assert!(matches!(
+ read_server_message(
+ client_control_rx
+ .recv_timeout(Duration::from_millis(100))
+ .expect("IME-compatible keyboard enhancement message")
+ ),
+ ServerMessage::KittyKeyboardReportAll { enabled: false }
+ ));
+ }
+
+ #[tokio::test]
async fn focused_report_all_pane_updates_headless_client_keyboard_flags() {
let mut server = test_headless_server();
let (client_tx, client_control_rx, _client_rx) = test_client_writer();
@@ -8456,6 +8496,7 @@ next_tab = ""
));
assert!(server.app.close_popup_pane());
+ server.app.state.mode = crate::app::Mode::Terminal;
server.stream_host_keyboard_enhancement_flags();
assert!(matches!(
read_server_message(