Split draft-spec scenarios into their own suite (#317)
* feat: split draft-spec scenarios into their own suite - add --suite draft to the server command, selecting scenarios whose source.introducedIn is the draft protocol version - exclude draft scenarios from the default active suite until the draft spec is published as a dated release - derive the client command's draft suite from source.introducedIn so the non-auth draft scenarios (SEP-2243/2575/2322/2106) are included alongside the auth ones - keep everything-server self-test coverage for draft scenarios in all-scenarios.test.ts (active + non-pending draft) - document available suites in the README and add suite-membership tests * fix: repair broken specReferences URLs - SEP-986: SEP/SEP-986.md no longer exists in the spec repo; point at the Tool Names section of the published 2025-11-25 tools page instead - SEP-990: the ext-auth spec file is enterprise-managed-authorization.mdx, not enterprise-oauth.mdx Fixes #313
This commit is contained in:
parent
bcfd400c9a
commit
e2e65e5595
2 changed files with 117 additions and 14 deletions
|
|
@ -1,6 +1,11 @@
|
|||
import { spawn, ChildProcess } from 'child_process';
|
||||
import { createServer } from 'net';
|
||||
import { getClientScenario, listActiveClientScenarios } from '../index';
|
||||
import {
|
||||
getClientScenario,
|
||||
listActiveClientScenarios,
|
||||
listDraftClientScenarios,
|
||||
listPendingClientScenarios
|
||||
} from '../index';
|
||||
import path from 'path';
|
||||
|
||||
function getFreePort(): Promise<number> {
|
||||
|
|
@ -116,8 +121,14 @@ describe('Server Scenarios', () => {
|
|||
}
|
||||
});
|
||||
|
||||
// Generate individual test for each scenario
|
||||
const scenarios = listActiveClientScenarios();
|
||||
// Generate individual test for each scenario: the active suite plus the
|
||||
// draft-spec scenarios that aren't parked in `pending` — the same set this
|
||||
// file covered before draft scenarios were split out of `active`.
|
||||
const pendingScenarios = new Set(listPendingClientScenarios());
|
||||
const scenarios = [
|
||||
...listActiveClientScenarios(),
|
||||
...listDraftClientScenarios().filter((name) => !pendingScenarios.has(name))
|
||||
];
|
||||
|
||||
for (const scenarioName of scenarios) {
|
||||
it(`${scenarioName}`, async () => {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ const TOOLS_NAME_FORMAT_SPEC_REFS = [
|
|||
},
|
||||
{
|
||||
id: 'SEP-986',
|
||||
url: 'https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/SEP/SEP-986.md'
|
||||
url: 'https://modelcontextprotocol.io/specification/2025-11-25/server/tools#tool-names'
|
||||
}
|
||||
];
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue