test(mcp): assert server protocol metadata (#3788)

* test(mcp): assert server protocol metadata

* test: remove resolved server duplicate audit pair

---------

Co-authored-by: Gergő Magyar <gergomagyar@icloud.com>
This commit is contained in:
Parafee41 2026-11-01 03:35:42 +08:00 • committed by GitHub
parent 347165dd59
commit 82966afa64
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 12 deletions

View file

@ -368,12 +368,6 @@
"category": "reexport-context",
"basis": "local-backend.ts imports and directly re-exports the same isTestFilePath function. Both tests pass undefined, null and empty string and assert false three times."
},
{
"a": "test/unit/server.test.ts#server error handling > createMCPServer reads version from package.json",
"b": "test/unit/server.test.ts#prompt registration > server registers detect_impact and generate_map prompts",
"category": "same-file",
"basis": "Identical scenario body in one file, using the same helpers, input data and assertions. Enclosing setup has no relevant difference."
},
{
"a": "test/unit/shared-type-extractors.test.ts#extractElementTypeFromString > returns undefined when base is not a simple word: user model[]",
"b": "test/unit/shared-type-extractors.test.ts#extractElementTypeFromString > returns undefined for complex non-word base before []: user model[]",

View file

@ -27,6 +27,7 @@ import {
} from '../../src/mcp/server.js';
import { GITNEXUS_TOOLS } from '../../src/mcp/tools.js';
import { createMcpRepositoryPolicy } from '../../src/mcp/repository-policy.js';
import { packageVersion } from '../../src/core/package-version.js';
// ─── Mock backend ──────────────────────────────────────────────────
@ -660,22 +661,42 @@ describe('server error handling', () => {
expect(() => createMCPServer(backend)).not.toThrow();
});
it('createMCPServer reads version from package.json', () => {
it('createMCPServer advertises the package version', async () => {
const backend = createMockBackend();
const server = createMCPServer(backend);
// Server was created with version from package.json — no crash
expect(server).toBeDefined();
const client = new Client({ name: 'version-test-client', version: '0.0.0' });
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
try {
await Promise.all([server.connect(serverTransport), client.connect(clientTransport)]);
expect(client.getServerVersion()).toMatchObject({ version: packageVersion() });
} finally {
await client.close();
await server.close();
}
});
});
// ─── Prompt definitions ───────────────────────────────────────────────
describe('prompt registration', () => {
it('server registers detect_impact and generate_map prompts', () => {
it('server registers detect_impact and generate_map prompts', async () => {
const backend = createMockBackend();
// Creating the server registers all handlers including prompts
const server = createMCPServer(backend);
expect(server).toBeDefined();
const client = new Client({ name: 'prompt-test-client', version: '0.0.0' });
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
try {
await Promise.all([server.connect(serverTransport), client.connect(clientTransport)]);
const response = await client.listPrompts();
expect(response.prompts.map((prompt) => prompt.name)).toEqual([
'detect_impact',
'generate_map',
]);
} finally {
await client.close();
await server.close();
}
});
});