UNPKG

@translated/lara-mcp

Version:

Lara API official MCP server

48 lines (47 loc) 2.01 kB
import { describe, it, expect, beforeEach } from 'vitest'; import { getGlossary, getGlossarySchema } from '../../mcp/tools/get_glossary.js'; import { getMockTranslator, setupTranslatorMock } from '../utils/mocks.js'; // Setup mocks setupTranslatorMock(); describe('getGlossarySchema', () => { it('should validate correct input', () => { expect(() => getGlossarySchema.parse({ id: 'gls_xyz123' })).not.toThrow(); }); it('should reject missing id', () => { expect(() => getGlossarySchema.parse({})).toThrow(); }); it('should reject empty glossary ID', () => { expect(() => getGlossarySchema.parse({ id: '' })).toThrow(); }); it('should reject very long glossary ID', () => { const longId = 'gls_' + 'a'.repeat(300); expect(() => getGlossarySchema.parse({ id: longId })).toThrow(); }); it('should reject invalid glossary ID format', () => { expect(() => getGlossarySchema.parse({ id: 'invalid-id' })).toThrow(); }); }); describe('getGlossary', () => { let mockTranslator; beforeEach(() => { mockTranslator = getMockTranslator(); }); it('should call lara.glossaries.get with correct id', async () => { const mockGlossary = { id: 'gls_xyz123', name: 'Test Glossary', createdAt: 1234567890, updatedAt: 1234567890, ownerId: 'user1' }; mockTranslator.glossaries.get.mockResolvedValue(mockGlossary); const result = await getGlossary({ id: 'gls_xyz123' }, mockTranslator); expect(mockTranslator.glossaries.get).toHaveBeenCalledWith('gls_xyz123'); expect(result).toEqual({ glossary: mockGlossary }); }); it('should return { glossary: null } for non-existent glossary', async () => { mockTranslator.glossaries.get.mockResolvedValue(null); const result = await getGlossary({ id: 'gls_nonexistent' }, mockTranslator); expect(result).toEqual({ glossary: null }); }); });