tools.success.spec.ts•1.58 kB
import { describe, it, expect } from 'vitest';
import { createTools } from '../src/tools/index.js';
class GLMock {
listProjects = async () => [{ id: 1, name: 'p1' }];
listMergeRequests = async () => [{ id: 11, title: 'mr' }];
listIssues = async () => [{ id: 21, title: 'issue' }];
}
class JiraMock {
searchIssues = async () => ({ issues: [{ key: 'TEST-1' }] });
getIssue = async () => ({ key: 'TEST-2' });
}
describe('tools success paths', () => {
const tools = createTools({ cfg: {}, gitlab: new GLMock() as any, jira: new JiraMock() as any });
it('returns parsed GitLab projects', async () => {
const res = await tools.gitlab_list_projects();
expect(Array.isArray(res)).toBe(true);
expect((res as any)[0].id).toBe(1);
});
it('returns parsed GitLab merge requests', async () => {
const res = await tools.gitlab_list_merge_requests(123, 'opened');
expect(Array.isArray(res)).toBe(true);
expect((res as any)[0].id).toBe(11);
});
it('returns parsed GitLab issues', async () => {
const res = await tools.gitlab_list_issues(123);
expect(Array.isArray(res)).toBe(true);
expect((res as any)[0].id).toBe(21);
});
it('returns parsed Jira search results', async () => {
const res = await tools.jira_search_issues('project=TEST', 2);
expect(Array.isArray((res as any).issues)).toBe(true);
expect((res as any).issues[0].key).toBe('TEST-1');
});
it('returns parsed Jira issue', async () => {
const res = await tools.jira_get_issue('TEST-2');
expect((res as any).key).toBe('TEST-2');
});
});