From 4e80028e44ede42b9e0f7bd4beaee8a5cf9aae7c Mon Sep 17 00:00:00 2001 From: main Date: Mon, 23 Mar 2026 18:11:44 -0400 Subject: Persist consult outputs in /tmp --- crates/phone-opus/tests/mcp_hardening.rs | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'crates/phone-opus/tests/mcp_hardening.rs') diff --git a/crates/phone-opus/tests/mcp_hardening.rs b/crates/phone-opus/tests/mcp_hardening.rs index 23a1325..f7ce125 100644 --- a/crates/phone-opus/tests/mcp_hardening.rs +++ b/crates/phone-opus/tests/mcp_hardening.rs @@ -12,6 +12,7 @@ use libmcp_testkit::read_json_lines; use serde as _; use serde_json::{Value, json}; use thiserror as _; +use time as _; use users as _; use uuid as _; @@ -409,6 +410,26 @@ fn consult_can_resume_a_prior_session_with_read_only_toolset_and_requested_worki tool_content(&consult)["session_id"].as_str(), Some(resumed_session) ); + let persisted_output_path = must_some( + tool_content(&consult)["persisted_output_path"] + .as_str() + .map(str::to_owned), + "persisted output path", + )?; + assert!(persisted_output_path.starts_with("/tmp/phone_opus-consults/")); + let persisted_output = must( + fs::read_to_string(&persisted_output_path), + "read persisted consult output", + )?; + let persisted_output: Value = must( + serde_json::from_str(&persisted_output), + "parse persisted consult output", + )?; + assert_eq!(persisted_output["response"].as_str(), Some("oracle")); + assert_eq!( + persisted_output["requested_session_id"].as_str(), + Some(resumed_session) + ); let pwd = must(fs::read_to_string(&pwd_file), "read fake pwd file")?; assert_eq!(pwd.trim(), sandbox.display().to_string()); @@ -616,6 +637,25 @@ fn consult_can_run_in_background_and_be_polled() -> TestResult { tool_content(&job)["result"]["response"].as_str(), Some("background oracle") ); + let persisted_output_path = must_some( + tool_content(&job)["result"]["persisted_output_path"] + .as_str() + .map(str::to_owned), + "background persisted output path", + )?; + assert!(persisted_output_path.starts_with("/tmp/phone_opus-consults/")); + let persisted_output = must( + fs::read_to_string(&persisted_output_path), + "read background persisted consult output", + )?; + let persisted_output: Value = must( + serde_json::from_str(&persisted_output), + "parse background persisted consult output", + )?; + assert_eq!( + persisted_output["response"].as_str(), + Some("background oracle") + ); let jobs = harness.call_tool(5, "consult_jobs", json!({ "render": "json" }))?; assert_tool_ok(&jobs); -- cgit v1.2.3