swarm repositories / source
aboutsummaryrefslogtreecommitdiff
path: root/crates/phone-opus/tests
diff options
context:
space:
mode:
Diffstat (limited to 'crates/phone-opus/tests')
-rw-r--r--crates/phone-opus/tests/mcp_hardening.rs40
1 files changed, 40 insertions, 0 deletions
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);