mirror of
https://github.com/openai/codex.git
synced 2026-10-24 18:18:41 +00:00
## What changed - Parse the optional `[browser_use].allow_webmcp` boolean from managed requirements and preserve requirement-layer precedence. - Return the policy as `browserUse.allowWebmcp` from `configRequirements/read`, including explicit `true`, explicit `false`, and `null` when omitted. - Update the generated JSON and TypeScript protocol schemas. ## Testing - Cover parsing, invalid values, layered overrides, and app-server response serialization. GitOrigin-RevId: a3fd7d1a6f838bb3ab0ac2a644409101a2338ca6
46 lines
1.5 KiB
Rust
46 lines
1.5 KiB
Rust
use crate::BrowserUseRequirementsToml;
|
|
use crate::ConfigRequirementsToml;
|
|
use pretty_assertions::assert_eq;
|
|
|
|
#[test]
|
|
fn webmcp_requirements_preserve_explicit_values_and_omission() {
|
|
for (contents, expected_browser_use, expected_empty) in [
|
|
("", None, true),
|
|
("[browser_use]", Some(None), true),
|
|
(
|
|
"[browser_use]\nallow_webmcp = true",
|
|
Some(Some(true)),
|
|
false,
|
|
),
|
|
(
|
|
"[browser_use]\nallow_webmcp = false",
|
|
Some(Some(false)),
|
|
false,
|
|
),
|
|
] {
|
|
let requirements: ConfigRequirementsToml =
|
|
toml::from_str(contents).expect("parse managed WebMCP policy");
|
|
assert_eq!(
|
|
requirements,
|
|
ConfigRequirementsToml {
|
|
browser_use: expected_browser_use.map(|allow_webmcp| BrowserUseRequirementsToml {
|
|
allow_webmcp,
|
|
..Default::default()
|
|
}),
|
|
..Default::default()
|
|
},
|
|
);
|
|
assert_eq!(requirements.is_empty(), expected_empty, "{contents}");
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn webmcp_requirements_reject_non_booleans() {
|
|
for value in ["\"true\"", "1", "[]"] {
|
|
let contents = format!("[browser_use]\nallow_webmcp = {value}");
|
|
let error = toml::from_str::<ConfigRequirementsToml>(&contents)
|
|
.expect_err("WebMCP policy must be a boolean");
|
|
assert!(error.to_string().contains("allow_webmcp"));
|
|
}
|
|
}
|