"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const src_1 = require("../src"); describe('Prompts', () => { describe('getEnrichmentPrompt()', () => { it('should return a string prompt', () => { const prompt = (0, src_1.getEnrichmentPrompt)('Test content'); expect(typeof prompt).toBe('string'); expect(prompt.length).toBeGreaterThan(0); }); it('should include the content in the prompt', () => { const content = 'This is my test document content'; const prompt = (0, src_1.getEnrichmentPrompt)(content); expect(prompt).toContain(content); }); it('should include document type in prompt', () => { const prompt = (0, src_1.getEnrichmentPrompt)('Content', 'pdf'); expect(prompt).toContain('Document type: pdf'); }); it('should default to markdown doc type', () => { const prompt = (0, src_1.getEnrichmentPrompt)('Content'); expect(prompt).toContain('Document type: markdown'); }); it('should include JSON structure requirements', () => { const prompt = (0, src_1.getEnrichmentPrompt)('Content'); expect(prompt).toContain('"summary"'); expect(prompt).toContain('"tags"'); expect(prompt).toContain('"category"'); expect(prompt).toContain('"audience"'); expect(prompt).toContain('"doc_purpose"'); expect(prompt).toContain('"complexity"'); expect(prompt).toContain('"actionable"'); expect(prompt).toContain('"key_technologies"'); }); it('should include valid audience values', () => { const prompt = (0, src_1.getEnrichmentPrompt)('Content'); expect(prompt).toContain('all | beginner | intermediate | expert'); }); it('should include valid doc_purpose values', () => { const prompt = (0, src_1.getEnrichmentPrompt)('Content'); expect(prompt).toContain('reference | tutorial | troubleshooting | conceptual | guide | specification'); }); it('should include complexity scale', () => { const prompt = (0, src_1.getEnrichmentPrompt)('Content'); expect(prompt).toContain('1-5'); expect(prompt).toContain('1=overview'); expect(prompt).toContain('5=deep implementation'); }); it('should include guidelines for tags', () => { const prompt = (0, src_1.getEnrichmentPrompt)('Content'); expect(prompt).toContain('tags'); expect(prompt).toContain('SPECIFIC terms'); }); it('should request JSON-only response', () => { const prompt = (0, src_1.getEnrichmentPrompt)('Content'); expect(prompt).toContain('valid JSON only'); expect(prompt).toContain('No explanation'); }); it('should wrap content with delimiters', () => { const content = 'Test content'; const prompt = (0, src_1.getEnrichmentPrompt)(content); expect(prompt).toContain('---\n' + content + '\n---'); }); }); describe('getSamplePromptForDocType()', () => { it('should return correct descriptions for known types', () => { expect((0, src_1.getSamplePromptForDocType)('pdf')).toBe('PDF document'); expect((0, src_1.getSamplePromptForDocType)('word')).toBe('Word document'); expect((0, src_1.getSamplePromptForDocType)('email')).toBe('Email message'); expect((0, src_1.getSamplePromptForDocType)('image')).toBe('Image with OCR text'); expect((0, src_1.getSamplePromptForDocType)('audio')).toBe('Audio transcript'); expect((0, src_1.getSamplePromptForDocType)('video')).toBe('Video transcript'); expect((0, src_1.getSamplePromptForDocType)('presentation')).toBe('Presentation slides'); expect((0, src_1.getSamplePromptForDocType)('excel')).toBe('Spreadsheet data'); expect((0, src_1.getSamplePromptForDocType)('markdown')).toBe('Markdown document'); }); it('should return "document" for unknown types', () => { expect((0, src_1.getSamplePromptForDocType)('unknown')).toBe('document'); expect((0, src_1.getSamplePromptForDocType)('xyz')).toBe('document'); expect((0, src_1.getSamplePromptForDocType)('')).toBe('document'); }); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0cy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHJvbXB0cy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0NBR2dCO0FBRWhCLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO0lBQ3ZCLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7UUFDckMsRUFBRSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtZQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHlCQUFtQixFQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxHQUFHLEVBQUU7WUFDbEQsTUFBTSxPQUFPLEdBQUcsa0NBQWtDLENBQUM7WUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBQSx5QkFBbUIsRUFBQyxPQUFPLENBQUMsQ0FBQztZQUM1QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtZQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHlCQUFtQixFQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFO1lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUEseUJBQW1CLEVBQUMsU0FBUyxDQUFDLENB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QUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7WUFDcEQsTUFBTSxDQUFDLElBQUEsK0JBQXlCLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUQsTUFBTSxDQUFDLElBQUEsK0JBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUQsTUFBTSxDQUFDLElBQUEsK0JBQXlCLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0RW5yaWNobWVudFByb21wdCxcbiAgZ2V0U2FtcGxlUHJvbXB0Rm9yRG9jVHlwZVxufSBmcm9tICcuLi9zcmMnO1xuXG5kZXNjcmliZSgnUHJvbXB0cycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ2dldEVucmljaG1lbnRQcm9tcHQoKScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBhIHN0cmluZyBwcm9tcHQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9tcHQgPSBnZXRFbnJpY2htZW50UHJvbXB0KCdUZXN0IGNvbnRlbnQnKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgcHJvbXB0KS50b0JlKCdzdHJpbmcnKTtcbiAgICAgIGV4cGVjdChwcm9tcHQubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGluY2x1ZGUgdGhlIGNvbnRlbnQgaW4gdGhlIHByb21wdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSAnVGhpcyBpcyBteSB0ZXN0IGRvY3VtZW50IGNvbnRlbnQnO1xuICAgICAgY29uc3QgcHJvbXB0ID0gZ2V0RW5yaWNobWVudFByb21wdChjb250ZW50KTtcbiAgICAgIGV4cGVjdChwcm9tcHQpLnRvQ29udGFpbihjb250ZW50KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW5jbHVkZSBkb2N1bWVudCB0eXBlIGluIHByb21wdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb21wdCA9IGdldEVucmljaG1lbnRQcm9tcHQoJ0NvbnRlbnQnLCAncGRmJyk7XG4gICAgICBleHBlY3QocHJvbXB0KS50b0NvbnRhaW4oJ0RvY3VtZW50IHR5cGU6IHBkZicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBkZWZhdWx0IHRvIG1hcmtkb3duIGRvYyB0eXBlJywgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvbXB0ID0gZ2V0RW5yaWNobWVudFByb21wdCgnQ29udGVudCcpO1xuICAgICAgZXhwZWN0KHByb21wdCkudG9Db250YWluKCdEb2N1bWVudCB0eXBlOiBtYXJrZG93bicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbmNsdWRlIEpTT04gc3RydWN0dXJlIHJlcXVpcmVtZW50cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb21wdCA9IGdldEVucmljaG1lbnRQcm9tcHQoJ0NvbnRlbnQnKTtcbiAgICAgIGV4cGVjdChwcm9tcHQpLnRvQ29udGFpbignXCJzdW1tYXJ5XCInKTtcbiAgICAgIGV4cGVjdChwcm9tcHQpLnRvQ29udGFpbignXCJ0YWdzXCInKTtcbiAgICAgIGV4cGVjdChwcm9tcHQpLnRvQ29udGFpbignXCJjYXRlZ29yeVwiJyk7XG4gICAgICBleHBlY3QocHJvbXB0KS50b0NvbnRhaW4oJ1wiYXVkaWVuY2VcIicpO1xuICAgICAgZXhwZWN0KHByb21wdCkudG9Db250YWluKCdcImRvY19wdXJwb3NlXCInKTtcbiAgICAgIGV4cGVjdChwcm9tcHQpLnRvQ29udGFpbignXCJjb21wbGV4aXR5XCInKTtcbiAgICAgIGV4cGVjdChwcm9tcHQpLnRvQ29udGFpbignXCJhY3Rpb25hYmxlXCInKTtcbiAgICAgIGV4cGVjdChwcm9tcHQpLnRvQ29udGFpbignXCJrZXlfdGVjaG5vbG9naWVzXCInKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW5jbHVkZSB2YWxpZCBhdWRpZW5jZSB2YWx1ZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9tcHQgPSBnZXRFbnJpY2htZW50UHJvbXB0KCdDb250ZW50Jyk7XG4gICAgICBleHBlY3QocHJvbXB0KS50b0NvbnRhaW4oJ2FsbCB8IGJlZ2lubmVyIHwgaW50ZXJtZWRpYXRlIHwgZXhwZXJ0Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGluY2x1ZGUgdmFsaWQgZG9jX3B1cnBvc2UgdmFsdWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvbXB0ID0gZ2V0RW5yaWNobWVudFByb21wdCgnQ29udGVudCcpO1xuICAgICAgZXhwZWN0KHByb21wdCkudG9Db250YWluKCdyZWZlcmVuY2UgfCB0dXRvcmlhbCB8IHRyb3VibGVzaG9vdGluZyB8IGNvbmNlcHR1YWwgfCBndWlkZSB8IHNwZWNpZmljYXRpb24nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW5jbHVkZSBjb21wbGV4aXR5IHNjYWxlJywgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvbXB0ID0gZ2V0RW5yaWNobWVudFByb21wdCgnQ29udGVudCcpO1xuICAgICAgZXhwZWN0KHByb21wdCkudG9Db250YWluKCcxLTUnKTtcbiAgICAgIGV4cGVjdChwcm9tcHQpLnRvQ29udGFpbignMT1vdmVydmlldycpO1xuICAgICAgZXhwZWN0KHByb21wdCkudG9Db250YWluKCc1PWRlZXAgaW1wbGVtZW50YXRpb24nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW5jbHVkZSBndWlkZWxpbmVzIGZvciB0YWdzJywgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvbXB0ID0gZ2V0RW5yaWNobWVudFByb21wdCgnQ29udGVudCcpO1xuICAgICAgZXhwZWN0KHByb21wdCkudG9Db250YWluKCd0YWdzJyk7XG4gICAgICBleHBlY3QocHJvbXB0KS50b0NvbnRhaW4oJ1NQRUNJRklDIHRlcm1zJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlcXVlc3QgSlNPTi1vbmx5IHJlc3BvbnNlJywgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvbXB0ID0gZ2V0RW5yaWNobWVudFByb21wdCgnQ29udGVudCcpO1xuICAgICAgZXhwZWN0KHByb21wdCkudG9Db250YWluKCd2YWxpZCBKU09OIG9ubHknKTtcbiAgICAgIGV4cGVjdChwcm9tcHQpLnRvQ29udGFpbignTm8gZXhwbGFuYXRpb24nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgd3JhcCBjb250ZW50IHdpdGggZGVsaW1pdGVycycsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSAnVGVzdCBjb250ZW50JztcbiAgICAgIGNvbnN0IHByb21wdCA9IGdldEVucmljaG1lbnRQcm9tcHQoY29udGVudCk7XG4gICAgICBleHBlY3QocHJvbXB0KS50b0NvbnRhaW4oJy0tLVxcbicgKyBjb250ZW50ICsgJ1xcbi0tLScpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0U2FtcGxlUHJvbXB0Rm9yRG9jVHlwZSgpJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGNvcnJlY3QgZGVzY3JpcHRpb25zIGZvciBrbm93biB0eXBlcycsICgpID0+IHtcbiAgICAgIGV4cGVjdChnZXRTYW1wbGVQcm9tcHRGb3JEb2NUeXBlKCdwZGYnKSkudG9CZSgnUERGIGRvY3VtZW50Jyk7XG4gICAgICBleHBlY3QoZ2V0U2FtcGxlUHJvbXB0Rm9yRG9jVHlwZSgnd29yZCcpKS50b0JlKCdXb3JkIGRvY3VtZW50Jyk7XG4gICAgICBleHBlY3QoZ2V0U2FtcGxlUHJvbXB0Rm9yRG9jVHlwZSgnZW1haWwnKSkudG9CZSgnRW1haWwgbWVzc2FnZScpO1xuICAgICAgZXhwZWN0KGdldFNhbXBsZVByb21wdEZvckRvY1R5cGUoJ2ltYWdlJykpLnRvQmUoJ0ltYWdlIHdpdGggT0NSIHRleHQnKTtcbiAgICAgIGV4cGVjdChnZXRTYW1wbGVQcm9tcHRGb3JEb2NUeXBlKCdhdWRpbycpKS50b0JlKCdBdWRpbyB0cmFuc2NyaXB0Jyk7XG4gICAgICBleHBlY3QoZ2V0U2FtcGxlUHJvbXB0Rm9yRG9jVHlwZSgndmlkZW8nKSkudG9CZSgnVmlkZW8gdHJhbnNjcmlwdCcpO1xuICAgICAgZXhwZWN0KGdldFNhbXBsZVByb21wdEZvckRvY1R5cGUoJ3ByZXNlbnRhdGlvbicpKS50b0JlKCdQcmVzZW50YXRpb24gc2xpZGVzJyk7XG4gICAgICBleHBlY3QoZ2V0U2FtcGxlUHJvbXB0Rm9yRG9jVHlwZSgnZXhjZWwnKSkudG9CZSgnU3ByZWFkc2hlZXQgZGF0YScpO1xuICAgICAgZXhwZWN0KGdldFNhbXBsZVByb21wdEZvckRvY1R5cGUoJ21hcmtkb3duJykpLnRvQmUoJ01hcmtkb3duIGRvY3VtZW50Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBcImRvY3VtZW50XCIgZm9yIHVua25vd24gdHlwZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZ2V0U2FtcGxlUHJvbXB0Rm9yRG9jVHlwZSgndW5rbm93bicpKS50b0JlKCdkb2N1bWVudCcpO1xuICAgICAgZXhwZWN0KGdldFNhbXBsZVByb21wdEZvckRvY1R5cGUoJ3h5eicpKS50b0JlKCdkb2N1bWVudCcpO1xuICAgICAgZXhwZWN0KGdldFNhbXBsZVByb21wdEZvckRvY1R5cGUoJycpKS50b0JlKCdkb2N1bWVudCcpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19