From adb50cba9b15583db019bb655119915869e8c44e Mon Sep 17 00:00:00 2001 From: Can Celik Date: Tue, 4 Aug 2026 05:19:40 +0300 Subject: fix(input): preserve shift-tab in pane automation (#2259) refs #1561 --- src/app/api/panes.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/app') diff --git a/src/app/api/panes.rs b/src/app/api/panes.rs index 72798a1b..a5f1cbcb 100644 --- a/src/app/api/panes.rs +++ b/src/app/api/panes.rs @@ -1978,6 +1978,24 @@ mod tests { assert!(rx.try_recv().is_err()); } + #[tokio::test] + async fn api_pane_send_keys_encodes_shift_tab_as_backtab() { + let (mut app, pane_id, mut rx) = app_with_send_key_runtime(1); + + let response = app.handle_api_request(crate::api::schema::Request { + id: "req".into(), + method: crate::api::schema::Method::PaneSendKeys(PaneSendKeysParams { + pane_id, + keys: vec!["shift+tab".into()], + }), + }); + + let success: SuccessResponse = serde_json::from_str(&response).unwrap(); + assert_eq!(success.result, ResponseResult::Ok {}); + assert_eq!(rx.try_recv().unwrap(), bytes::Bytes::from_static(b"\x1b[Z")); + assert!(rx.try_recv().is_err()); + } + #[tokio::test] async fn api_pane_get_exposes_scroll_metrics() { let (mut app, public_pane_id, pane_id) = app_with_scrollback_runtime(); -- cgit v1.2.3