Skip to main content
Glama

ClinicalTrials.gov MCP Server

index.test.ts•7.46 kB
/** * @fileoverview Test suite for parsing utilities barrel export * @module tests/utils/parsing/index.test */ import { describe, expect, it } from 'vitest'; describe('Parsing Utilities Barrel Export', () => { describe('Parser Class Exports', () => { it('should export CsvParser class', async () => { const { CsvParser } = await import('@/utils/parsing/index.js'); expect(CsvParser).toBeDefined(); expect(typeof CsvParser).toBe('function'); }); it('should export JsonParser class', async () => { const { JsonParser } = await import('@/utils/parsing/index.js'); expect(JsonParser).toBeDefined(); expect(typeof JsonParser).toBe('function'); }); it('should export XmlParser class', async () => { const { XmlParser } = await import('@/utils/parsing/index.js'); expect(XmlParser).toBeDefined(); expect(typeof XmlParser).toBe('function'); }); it('should export YamlParser class', async () => { const { YamlParser } = await import('@/utils/parsing/index.js'); expect(YamlParser).toBeDefined(); expect(typeof YamlParser).toBe('function'); }); it('should export PdfParser class', async () => { const { PdfParser } = await import('@/utils/parsing/index.js'); expect(PdfParser).toBeDefined(); expect(typeof PdfParser).toBe('function'); }); }); describe('Parser Singleton Exports', () => { it('should export csvParser singleton', async () => { const { csvParser } = await import('@/utils/parsing/index.js'); expect(csvParser).toBeDefined(); expect(typeof csvParser).toBe('object'); }); it('should export jsonParser singleton', async () => { const { jsonParser } = await import('@/utils/parsing/index.js'); expect(jsonParser).toBeDefined(); expect(typeof jsonParser).toBe('object'); }); it('should export xmlParser singleton', async () => { const { xmlParser } = await import('@/utils/parsing/index.js'); expect(xmlParser).toBeDefined(); expect(typeof xmlParser).toBe('object'); }); it('should export yamlParser singleton', async () => { const { yamlParser } = await import('@/utils/parsing/index.js'); expect(yamlParser).toBeDefined(); expect(typeof yamlParser).toBe('object'); }); it('should export pdfParser singleton', async () => { const { pdfParser } = await import('@/utils/parsing/index.js'); expect(pdfParser).toBeDefined(); expect(typeof pdfParser).toBe('object'); }); it('should export dateParser object', async () => { const { dateParser } = await import('@/utils/parsing/index.js'); expect(dateParser).toBeDefined(); expect(typeof dateParser).toBe('object'); }); }); describe('Date Parsing Function Exports', () => { it('should export parseDateString function', async () => { const { parseDateString } = await import('@/utils/parsing/index.js'); expect(parseDateString).toBeDefined(); expect(typeof parseDateString).toBe('function'); }); it('should export parseDateStringDetailed function', async () => { const { parseDateStringDetailed } = await import( '@/utils/parsing/index.js' ); expect(parseDateStringDetailed).toBeDefined(); expect(typeof parseDateStringDetailed).toBe('function'); }); }); describe('PDF Utility Exports', () => { it('should export PDFDocument from pdf-lib', async () => { const { PDFDocument } = await import('@/utils/parsing/index.js'); expect(PDFDocument).toBeDefined(); expect(typeof PDFDocument).toBe('function'); }); it('should export StandardFonts from pdf-lib', async () => { const { StandardFonts } = await import('@/utils/parsing/index.js'); expect(StandardFonts).toBeDefined(); }); it('should export degrees from pdf-lib', async () => { const { degrees } = await import('@/utils/parsing/index.js'); expect(degrees).toBeDefined(); expect(typeof degrees).toBe('function'); }); it('should export rgb from pdf-lib', async () => { const { rgb } = await import('@/utils/parsing/index.js'); expect(rgb).toBeDefined(); expect(typeof rgb).toBe('function'); }); }); describe('Functional Integration', () => { it('should allow using csvParser through barrel export', async () => { const { csvParser } = await import('@/utils/parsing/index.js'); expect(csvParser.parse).toBeDefined(); expect(typeof csvParser.parse).toBe('function'); }); it('should allow using jsonParser through barrel export', async () => { const { jsonParser } = await import('@/utils/parsing/index.js'); expect(jsonParser.parse).toBeDefined(); expect(typeof jsonParser.parse).toBe('function'); }); it('should allow using xmlParser through barrel export', async () => { const { xmlParser } = await import('@/utils/parsing/index.js'); expect(xmlParser.parse).toBeDefined(); expect(typeof xmlParser.parse).toBe('function'); }); it('should allow using yamlParser through barrel export', async () => { const { yamlParser } = await import('@/utils/parsing/index.js'); expect(yamlParser.parse).toBeDefined(); expect(typeof yamlParser.parse).toBe('function'); }); it('should allow using pdfParser through barrel export', async () => { const { pdfParser } = await import('@/utils/parsing/index.js'); expect(pdfParser.extractText).toBeDefined(); expect(typeof pdfParser.extractText).toBe('function'); }); it('should allow using dateParser through barrel export', async () => { const { dateParser } = await import('@/utils/parsing/index.js'); expect(dateParser.parse).toBeDefined(); expect(typeof dateParser.parse).toBe('function'); }); it('should allow calling parseDateString directly', async () => { const { parseDateString } = await import('@/utils/parsing/index.js'); const context = { requestId: 'test-id', timestamp: new Date().toISOString(), }; const result = await parseDateString('2024-01-15T10:30:00Z', context); // parseDateString can return Date or null if parsing fails expect(result === null || result instanceof Date).toBe(true); }); it('should allow instantiating parser classes', async () => { const { CsvParser, JsonParser } = await import( '@/utils/parsing/index.js' ); const csv = new CsvParser(); const json = new JsonParser(); expect(csv).toBeInstanceOf(CsvParser); expect(json).toBeInstanceOf(JsonParser); }); }); describe('Complete Export Verification', () => { it('should export all major parser symbols', async () => { const parsingModule = await import('@/utils/parsing/index.js'); const expectedExports = [ 'CsvParser', 'csvParser', 'JsonParser', 'jsonParser', 'XmlParser', 'xmlParser', 'YamlParser', 'yamlParser', 'PdfParser', 'pdfParser', 'dateParser', 'parseDateString', 'parseDateStringDetailed', 'PDFDocument', 'StandardFonts', 'degrees', 'rgb', ]; expectedExports.forEach((exportName) => { expect(parsingModule).toHaveProperty(exportName); }); }); }); });

Latest Blog Posts

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/cyanheads/clinicaltrialsgov-mcp-server'

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