diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-09 21:57:28 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-09 21:59:18 +0300 |
| commit | c45a3b2dc1c2877dd6ee4ea9701d17ff656fc3ca (patch) | |
| tree | 11d614e2361aea23905a02416cdff3eaf08e8f60 /src/api/schema.rs | |
| parent | a6cbc9765116844744140fe89ef0633b480568cc (diff) | |
feat(api): return root panes from workspace and tab creation
Diffstat (limited to 'src/api/schema.rs')
| -rw-r--r-- | src/api/schema.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/api/schema.rs b/src/api/schema.rs index 42a9c259..38393141 100644 --- a/src/api/schema.rs +++ b/src/api/schema.rs @@ -405,12 +405,21 @@ pub enum ResponseResult { WorkspaceInfo { workspace: WorkspaceInfo, }, + WorkspaceCreated { + workspace: WorkspaceInfo, + tab: TabInfo, + root_pane: PaneInfo, + }, WorkspaceList { workspaces: Vec<WorkspaceInfo>, }, TabInfo { tab: TabInfo, }, + TabCreated { + tab: TabInfo, + root_pane: PaneInfo, + }, TabList { tabs: Vec<TabInfo>, }, @@ -865,6 +874,40 @@ mod tests { } #[test] + fn create_response_round_trips_with_root_pane() { + let response = SuccessResponse { + id: "req_2".into(), + result: ResponseResult::TabCreated { + tab: TabInfo { + tab_id: "w_1:2".into(), + workspace_id: "w_1".into(), + number: 2, + label: "review".into(), + focused: false, + pane_count: 1, + agent_status: AgentStatus::Unknown, + }, + root_pane: PaneInfo { + pane_id: "w_1-3".into(), + workspace_id: "w_1".into(), + tab_id: "w_1:2".into(), + focused: false, + cwd: Some("/tmp/review".into()), + agent: None, + agent_status: AgentStatus::Unknown, + revision: 0, + }, + }, + }; + + let json = serde_json::to_string(&response).unwrap(); + assert!(json.contains("\"type\":\"tab_created\"")); + assert!(json.contains("\"root_pane\"")); + let restored: SuccessResponse = serde_json::from_str(&json).unwrap(); + assert_eq!(restored, response); + } + + #[test] fn error_response_round_trips() { let response = ErrorResponse { id: "req_1".into(), |
