diff options
Diffstat (limited to 'src/app/api')
| -rw-r--r-- | src/app/api/agents.rs | 6 | ||||
| -rw-r--r-- | src/app/api/panes.rs | 28 |
2 files changed, 28 insertions, 6 deletions
diff --git a/src/app/api/agents.rs b/src/app/api/agents.rs index ffb9cb63..f1977ce4 100644 --- a/src/app/api/agents.rs +++ b/src/app/api/agents.rs @@ -117,7 +117,7 @@ impl App { else { return agent_not_found(id, ¶ms.target); }; - let text = crate::app::api_helpers::read_terminal_snapshot( + let snapshot = crate::app::api_helpers::read_terminal_snapshot( pane, params.source, params.format, @@ -137,9 +137,9 @@ impl App { .unwrap(), source: params.source, format: params.format, - text, + text: snapshot.text, revision: 0, - truncated: false, + truncated: snapshot.truncated, }, }, ) diff --git a/src/app/api/panes.rs b/src/app/api/panes.rs index 43206d1e..253fd627 100644 --- a/src/app/api/panes.rs +++ b/src/app/api/panes.rs @@ -1179,7 +1179,7 @@ impl App { else { return pane_not_found(id, ¶ms.pane_id); }; - let text = crate::app::api_helpers::read_terminal_snapshot( + let snapshot = crate::app::api_helpers::read_terminal_snapshot( pane, params.source, params.format, @@ -1195,9 +1195,9 @@ impl App { tab_id: self.public_tab_id(ws_idx, tab_idx).unwrap(), source: params.source, format: params.format, - text, + text: snapshot.text, revision: 0, - truncated: false, + truncated: snapshot.truncated, }, }, ) @@ -2002,6 +2002,28 @@ mod tests { } #[tokio::test] + async fn api_pane_read_reports_when_older_rows_are_omitted() { + let (mut app, public_pane_id, _pane_id) = app_with_scrollback_runtime(); + + let response = app.handle_pane_read( + "req".into(), + PaneReadParams { + pane_id: public_pane_id, + source: crate::api::schema::ReadSource::Recent, + lines: Some(2), + format: crate::api::schema::ReadFormat::Text, + strip_ansi: true, + }, + ); + let success: SuccessResponse = serde_json::from_str(&response).unwrap(); + let ResponseResult::PaneRead { read } = success.result else { + panic!("expected pane read response"); + }; + assert!(read.text.contains("line 19")); + assert!(read.truncated); + } + + #[tokio::test] async fn api_pane_send_keys_preserves_legacy_control_c_aliases() { let (mut app, pane_id, mut rx) = app_with_send_key_runtime(3); |
