aboutsummaryrefslogtreecommitdiff
path: root/src/app/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/api')
-rw-r--r--src/app/api/agents.rs6
-rw-r--r--src/app/api/panes.rs28
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, &params.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, &params.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);