From dbcc9965e966c33441989748cfacf6daae607368 Mon Sep 17 00:00:00 2001 From: Marco Allegretti Date: Wed, 11 Mar 2026 12:12:20 +0100 Subject: [PATCH] test(appd): add roundtrip tests for TerminateApp, Error, and AppState IPC variants --- crates/weft-appd/src/ipc.rs | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/crates/weft-appd/src/ipc.rs b/crates/weft-appd/src/ipc.rs index dc88408..377261c 100644 --- a/crates/weft-appd/src/ipc.rs +++ b/crates/weft-appd/src/ipc.rs @@ -177,6 +177,48 @@ mod tests { } } + #[test] + fn terminate_app_request_roundtrip() { + let req = Request::TerminateApp { session_id: 42 }; + let bytes = rmp_serde::to_vec(&req).unwrap(); + let decoded: Request = rmp_serde::from_slice(&bytes).unwrap(); + assert!(matches!(decoded, Request::TerminateApp { session_id: 42 })); + } + + #[test] + fn error_response_roundtrip() { + let resp = Response::Error { + code: 1, + message: "not found".into(), + }; + let bytes = rmp_serde::to_vec(&resp).unwrap(); + let decoded: Response = rmp_serde::from_slice(&bytes).unwrap(); + match decoded { + Response::Error { code, message } => { + assert_eq!(code, 1); + assert_eq!(message, "not found"); + } + _ => panic!("wrong variant"), + } + } + + #[test] + fn app_state_response_roundtrip() { + let resp = Response::AppState { + session_id: 5, + state: super::AppStateKind::Running, + }; + let bytes = rmp_serde::to_vec(&resp).unwrap(); + let decoded: Response = rmp_serde::from_slice(&bytes).unwrap(); + assert!(matches!( + decoded, + Response::AppState { + session_id: 5, + state: super::AppStateKind::Running + } + )); + } + #[tokio::test] async fn frame_write_read_roundtrip() { let resp = Response::RunningApps { sessions: vec![] };