diff --git a/tests/boundary/mcp/browserComparisonInput.test.ts b/tests/boundary/mcp/browserComparisonInput.test.ts index 0dba6faff..7e916c9f5 100644 --- a/tests/boundary/mcp/browserComparisonInput.test.ts +++ b/tests/boundary/mcp/browserComparisonInput.test.ts @@ -110,15 +110,6 @@ describe("browser comparison input boundary", () => { }, { before_scenario: {}, after_scenario: {} }, { before_scenario: scenario.before_scenario }, - { ...passive, normalization: { rules: [] } }, - { - before_scenario: scenario.before_scenario, - normalization: { rules: [] }, - }, - { - after_scenario: scenario.after_scenario, - normalization: { rules: [] }, - }, { ...passive, unexpected: true }, { ...scenario, @@ -133,8 +124,24 @@ describe("browser comparison input boundary", () => { }, }, ]; - // The projection leaves group exclusion to the canonical runtime parser. - const mixedGroups = [{ ...passive, ...scenario }]; + // Strict clients reject combinators and dependentRequired, so the + // projection states the groups in its description and leaves group + // completeness and exclusion to the canonical runtime parser. + expect(advertised.inputSchema.description).toContain( + "before + after; before_scenario + after_scenario + [normalization]", + ); + const mixedGroups = [ + { ...passive, ...scenario }, + { ...passive, normalization: { rules: [] } }, + { + before_scenario: scenario.before_scenario, + normalization: { rules: [] }, + }, + { + after_scenario: scenario.after_scenario, + normalization: { rules: [] }, + }, + ]; for (const { input, advertisedValid, runtimeValid } of [ ...[passive, scenario, withoutNormalization].map((input) => ({ input,