agent-ecosystem/mcp-server/test/tools/task-set-owner.test.ts
iliya 161c675aaa feat: update pnpm lockfile and workspace configuration, enhance tool usage tracking and UI components
- Added new dependencies for mcp-server in pnpm-lock.yaml, including fastmcp and zod.
- Updated pnpm-workspace.yaml to include mcp-server in the workspace packages.
- Modified TeamDataService and TeamProvisioningService to exclude 'SendMessage' from tool usage counts, improving accuracy in tool tracking.
- Enhanced ChatHistory component to display context injection percentages, improving user feedback on context usage.
- Updated TeamDetailView to ensure session details are fetched periodically for active tabs, enhancing data freshness.
- Improved ActivityTimeline styling for better visual separation of sessions and messages.
2026-03-06 15:54:55 +02:00

42 lines
1.7 KiB
TypeScript

import { describe, it, expect } from 'vitest';
import { register } from '../../src/tools/task-set-owner.js';
import { createMockRunner, createMockServer, ok, fail } from './test-helpers.js';
describe('task_set_owner', () => {
function setup(response = ok('OK task #1 owner=alice\n')) {
const runner = createMockRunner(response);
const { server, tools } = createMockServer();
register(server, runner);
return { runner, tool: tools.get('task_set_owner')! };
}
it('builds args for assignment', async () => {
const { runner, tool } = setup();
await tool.execute({ team: 'acme', task_id: '1', owner: 'alice' });
expect(runner.execute).toHaveBeenCalledWith([
'--team', 'acme', 'task', 'set-owner', '1', 'alice',
]);
});
it('builds args for clear', async () => {
const { runner, tool } = setup(ok('OK task #1 owner=cleared\n'));
await tool.execute({ team: 'acme', task_id: '1', owner: 'clear' });
expect(runner.execute).toHaveBeenCalledWith([
'--team', 'acme', 'task', 'set-owner', '1', 'clear',
]);
});
it('includes notify and from flags', async () => {
const { runner, tool } = setup();
await tool.execute({ team: 'acme', task_id: '1', owner: 'alice', notify: true, from: 'bob' });
const args = runner.execute.mock.calls[0]![0] as string[];
expect(args).toContain('--notify');
expect(args).toContain('--from');
expect(args[args.indexOf('--from') + 1]).toBe('bob');
});
it('throws on CLI failure', async () => {
const { tool } = setup(fail('member not found'));
await expect(tool.execute({ team: 'acme', task_id: '1', owner: 'nobody' })).rejects.toThrow('Failed to set owner');
});
});