mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-09-08 22:22:52 +00:00
Wire extractors into the sync pipeline with service boundary detection. GroupService provides high-level API for all group operations. - Sync pipeline: orchestrates extraction (HTTP, gRPC, topics) with service boundary assignment and exact matching - GroupService: groupList, groupSync, groupContracts, groupQuery, groupStatus (groupImpact deferred to cross-repo follow-up PR) - CLI: group create/add/remove/list/sync/contracts/query/status - MCP tools: group_list, group_sync, group_contracts, group_query, group_status - Monorepo fixture: 3 services (auth/orders/gateway) connected via gRPC + Kafka + HTTP — all intra-repo cross-links discovered - Documentation: CLI commands and MCP tools added to both READMEs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
27 lines
843 B
TypeScript
27 lines
843 B
TypeScript
// gitnexus/test/unit/group/group-tools.test.ts
|
|
import { describe, it, expect } from 'vitest';
|
|
import { GITNEXUS_TOOLS } from '../../../src/mcp/tools.js';
|
|
|
|
const GROUP_TOOL_NAMES = [
|
|
'group_list',
|
|
'group_sync',
|
|
'group_contracts',
|
|
'group_query',
|
|
'group_status',
|
|
];
|
|
|
|
describe('Group MCP tools', () => {
|
|
it('all 5 group tools are registered', () => {
|
|
for (const name of GROUP_TOOL_NAMES) {
|
|
const tool = GITNEXUS_TOOLS.find((t) => t.name === name);
|
|
expect(tool, `tool ${name} should be registered`).toBeDefined();
|
|
expect(tool!.description.length).toBeGreaterThan(10);
|
|
expect(tool!.inputSchema.type).toBe('object');
|
|
}
|
|
});
|
|
|
|
it('group_sync requires name', () => {
|
|
const tool = GITNEXUS_TOOLS.find((t) => t.name === 'group_sync')!;
|
|
expect(tool.inputSchema.required).toContain('name');
|
|
});
|
|
});
|