test(mcp): leave comparison group completeness to the runtime parser
80de3145e stopped advertising `dependentRequired` and states input groups in
the schema description instead. Passive captures with `normalization` and a
single scenario side with `normalization` therefore satisfy the advertised
projection, while the canonical parser still rejects them before any
provider call. Classify them with the other mixed groups and assert the
description carries the group guidance.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
181f0f9d1c
commit
8a28df4488
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue