UNPKG

openlit

Version:

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

64 lines 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("../utils"); describe('customRuleDetection', () => { it('matches a custom rule and returns correct result', () => { const rules = [ { pattern: 'foo', classification: 'test', verdict: 'yes', guard: 'custom', score: 0.9, explanation: 'Matched foo' } ]; const result = (0, utils_1.customRuleDetection)('foo bar', rules); expect(result.verdict).toBe('yes'); expect(result.classification).toBe('test'); expect(result.guard).toBe('custom'); expect(result.score).toBe(0.9); expect(result.explanation).toBe('Matched foo'); }); it('returns none result if no rules match', () => { const rules = [ { pattern: 'baz', classification: 'none' } ]; const result = (0, utils_1.customRuleDetection)('foo bar', rules); expect(result.verdict).toBe('none'); expect(result.classification).toBe('none'); expect(result.guard).toBe('none'); expect(result.score).toBe(0); expect(result.explanation).toBe('none'); }); it('skips invalid regex patterns and continues', () => { const rules = [ { pattern: '[invalid', classification: 'bad' }, { pattern: 'bar', classification: 'good', verdict: 'yes' } ]; const result = (0, utils_1.customRuleDetection)('foo bar', rules); expect(result.classification).toBe('good'); expect(result.verdict).toBe('yes'); }); }); describe('applyThresholdScore', () => { const baseResult = { score: 0.7, verdict: 'yes', guard: 'test_guard', classification: 'test_class', explanation: 'test explanation' }; it('returns the original result if score >= threshold', () => { const result = (0, utils_1.applyThresholdScore)(baseResult, 0.5); expect(result).toEqual(baseResult); }); it('returns a none result if score < threshold', () => { const result = (0, utils_1.applyThresholdScore)(baseResult, 0.8); expect(result).toEqual({ score: 0, verdict: 'none', guard: 'none', classification: 'none', explanation: 'none' }); }); it('returns the original result if score == threshold', () => { const result = (0, utils_1.applyThresholdScore)(baseResult, 0.7); expect(result).toEqual(baseResult); }); }); //# sourceMappingURL=utils.test.js.map