diff --git a/codex-rs/app-server/tests/suite/v2/turn_start.rs b/codex-rs/app-server/tests/suite/v2/turn_start.rs index d41ca2610b..6d66edd3d3 100644 --- a/codex-rs/app-server/tests/suite/v2/turn_start.rs +++ b/codex-rs/app-server/tests/suite/v2/turn_start.rs @@ -749,13 +749,17 @@ async fn turn_start_rejects_combined_oversized_text_input() -> Result<()> { #[tokio::test] async fn turn_start_rejects_invalid_permission_profile_before_starting_turn() -> Result<()> { let codex_home = TempDir::new()?; - let unsupported_write_root = TempDir::new()?; + let disallowed_write_root = TempDir::new()?; create_config_toml( codex_home.path(), "http://localhost/unused", "never", &BTreeMap::from([(Feature::Personality, true)]), )?; + std::fs::write( + codex_home.path().join("managed_config.toml"), + "sandbox_mode = \"read-only\"\n", + )?; let mut mcp = McpProcess::new(codex_home.path()).await?; timeout(DEFAULT_READ_TIMEOUT, mcp.initialize()).await??; @@ -772,7 +776,7 @@ async fn turn_start_rejects_invalid_permission_profile_before_starting_turn() -> ) .await??; let ThreadStartResponse { thread, .. } = to_response::(thread_resp)?; - let unsupported_write_root = AbsolutePathBuf::from_absolute_path(unsupported_write_root.path()) + let disallowed_write_root = AbsolutePathBuf::from_absolute_path(disallowed_write_root.path()) .expect("tempdir path should be absolute"); let turn_req = mcp @@ -787,7 +791,7 @@ async fn turn_start_rejects_invalid_permission_profile_before_starting_turn() -> file_system: PermissionProfileFileSystemPermissions::Restricted { entries: vec![FileSystemSandboxEntry { path: FileSystemPath::Path { - path: unsupported_write_root, + path: disallowed_write_root, }, access: FileSystemAccessMode::Write, }], @@ -806,9 +810,9 @@ async fn turn_start_rejects_invalid_permission_profile_before_starting_turn() -> assert_eq!(err.error.code, INVALID_REQUEST_ERROR_CODE); assert!(err.error.message.contains("invalid turn context override")); assert!( - err.error - .message - .contains("filesystem writes outside the workspace root") + err.error.message.contains("allowed set [ReadOnly]"), + "unexpected error message: {}", + err.error.message ); let turn_started = tokio::time::timeout( std::time::Duration::from_millis(250),