Skip to main content
Glama
MIT License
27,120
19,780
  • Linux
  • Apple
loadLanguage.test.ts•1.91 kB
import fs from 'node:fs/promises'; import { describe, expect, it, vi } from 'vitest'; import { Language } from 'web-tree-sitter'; import { loadLanguage } from '../../../src/core/treeSitter/loadLanguage.js'; vi.mock('node:fs/promises'); vi.mock('web-tree-sitter', () => ({ Language: { load: vi.fn(), }, })); vi.mock('node:module', () => ({ createRequire: () => ({ resolve: (path: string) => `/mock/path/${path}`, }), })); describe('loadLanguage', () => { it('should throw error for empty language name', async () => { await expect(loadLanguage('')).rejects.toThrow('Invalid language name'); }); it('should load language successfully', async () => { const mockAccess = vi.mocked(fs.access); mockAccess.mockResolvedValue(undefined); const mockLoadLanguage = vi.fn().mockResolvedValue({ success: true }); Language.load = mockLoadLanguage; await loadLanguage('javascript'); expect(mockAccess).toHaveBeenCalledWith('/mock/path/tree-sitter-wasms/out/tree-sitter-javascript.wasm'); expect(mockLoadLanguage).toHaveBeenCalledWith('/mock/path/tree-sitter-wasms/out/tree-sitter-javascript.wasm'); }); it('should throw error when WASM file is not found', async () => { const mockAccess = vi.mocked(fs.access); mockAccess.mockRejectedValue(new Error('File not found')); await expect(loadLanguage('javascript')).rejects.toThrow( 'WASM file not found for language javascript: /mock/path/tree-sitter-wasms/out/tree-sitter-javascript.wasm', ); }); it('should handle language load error', async () => { const mockAccess = vi.mocked(fs.access); mockAccess.mockResolvedValue(undefined); const mockLoadLanguage = vi.fn().mockRejectedValue(new Error('Load failed')); Language.load = mockLoadLanguage; await expect(loadLanguage('javascript')).rejects.toThrow('Failed to load language javascript: Load failed'); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yamadashy/repomix'

If you have feedback or need assistance with the MCP directory API, please join our Discord server