aboutsummaryrefslogtreecommitdiff
path: root/src/api/schema/tests.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-29 21:36:48 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-29 21:36:48 +0300
commit9150ed6268874d1f2a314b1ddbf531b66df1e105 (patch)
treeb8e8c35fb703b5b59babbdb8e4d732f906face41 /src/api/schema/tests.rs
parentf36d8043594489508046ff0852989ec08f52188a (diff)
feat: add session snapshot api
Diffstat (limited to 'src/api/schema/tests.rs')
-rw-r--r--src/api/schema/tests.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/api/schema/tests.rs b/src/api/schema/tests.rs
index dd2004cf..5d61e972 100644
--- a/src/api/schema/tests.rs
+++ b/src/api/schema/tests.rs
@@ -377,6 +377,40 @@ fn success_response_round_trips() {
}
#[test]
+fn session_snapshot_request_and_response_round_trip() {
+ let request = Request {
+ id: "req_snapshot".into(),
+ method: Method::SessionSnapshot(EmptyParams::default()),
+ };
+ let json = serde_json::to_string(&request).unwrap();
+ assert!(json.contains("\"method\":\"session.snapshot\""));
+ let restored: Request = serde_json::from_str(&json).unwrap();
+ assert_eq!(restored, request);
+
+ let response = SuccessResponse {
+ id: "req_snapshot".into(),
+ result: ResponseResult::SessionSnapshot {
+ snapshot: Box::new(SessionSnapshot {
+ version: "0.1.2".into(),
+ protocol: 15,
+ focused_workspace_id: None,
+ focused_tab_id: None,
+ focused_pane_id: None,
+ workspaces: Vec::new(),
+ tabs: Vec::new(),
+ panes: Vec::new(),
+ layouts: Vec::new(),
+ agents: Vec::new(),
+ }),
+ },
+ };
+ let json = serde_json::to_string(&response).unwrap();
+ assert!(json.contains("\"type\":\"session_snapshot\""));
+ let restored: SuccessResponse = serde_json::from_str(&json).unwrap();
+ assert_eq!(restored, response);
+}
+
+#[test]
fn worktree_request_and_response_round_trip() {
let request = Request {
id: "req_worktree".into(),