UNPKG

openlit

Version:

OpenTelemetry-native Auto instrumentation library for monitoring LLM Applications, facilitating the integration of observability into your GenAI-driven projects

46 lines 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("../utils"); describe('evals/utils', () => { describe('formatPrompt', () => { it('formats prompt with all fields', () => { const result = (0, utils_1.formatPrompt)('SYSTEM', { prompt: 'p', contexts: ['c1', 'c2'], text: 't' }); expect(result).toContain('SYSTEM'); expect(result).toContain('Prompt: p'); expect(result).toContain('Contexts: c1 | c2'); expect(result).toContain('Text: t'); }); it('handles missing fields', () => { const result = (0, utils_1.formatPrompt)('SYSTEM', { text: 't' }); expect(result).toContain('Text: t'); }); }); describe('parseLlmResponse', () => { it('parses valid JSON', () => { const obj = { verdict: 'yes', evaluation: 'Bias', score: 1, classification: 'age', explanation: 'reason' }; expect((0, utils_1.parseLlmResponse)(JSON.stringify(obj))).toEqual(obj); }); it('returns fallback on invalid JSON', () => { const originalError = console.error; console.error = jest.fn(); // suppress error output const result = (0, utils_1.parseLlmResponse)('not json'); expect(result.verdict).toBe('no'); expect(result.classification).toBe('none'); console.error = originalError; // restore }); }); describe('formatCustomCategories', () => { it('returns empty string if no categories', () => { expect((0, utils_1.formatCustomCategories)()).toBe(''); expect((0, utils_1.formatCustomCategories)({})).toBe(''); }); it('formats categories with label', () => { const cats = { foo: 'desc1', bar: 'desc2' }; const out = (0, utils_1.formatCustomCategories)(cats, 'Bias'); expect(out).toContain('Additional Bias Categories:'); expect(out).toContain('- foo: desc1'); expect(out).toContain('- bar: desc2'); }); }); }); //# sourceMappingURL=utils.test.js.map