import { Parser } from './src/parser'; import * as fs from 'fs'; import * as path from 'path'; /** * Test that parses both markdown and asciidoc test documents * and generates an HTML report showing the parsing results */ describe('Parser Test Report', () => { const parser = new Parser({ linkBaseURL: 'https://example.com', wikilinkUrl: '/events?d={dtag}', hashtagUrl: '/notes?t={topic}', }); test('Generate HTML test report for markdown and asciidoc documents', async () => { // Read test documents const markdownContent = fs.readFileSync( path.join(__dirname, 'markdown_testdoc.md'), 'utf-8' ); const asciidocContent = fs.readFileSync( path.join(__dirname, 'asciidoc_testdoc.adoc'), 'utf-8' ); // Parse both documents const markdownResult = await parser.process(markdownContent); const asciidocResult = await parser.process(asciidocContent); // Generate HTML report const htmlReport = generateHTMLReport({ markdown: { original: markdownContent, result: markdownResult, }, asciidoc: { original: asciidocContent, result: asciidocResult, }, }); // Write HTML report to file const reportPath = path.join(__dirname, 'test-report.html'); fs.writeFileSync(reportPath, htmlReport, 'utf-8'); console.log(`\n✅ Test report generated: ${reportPath}`); console.log(` Open this file in your browser to view the results.\n`); // Basic assertions to ensure parsing worked expect(markdownResult.content).toBeTruthy(); expect(asciidocResult.content).toBeTruthy(); expect(markdownResult.content.length).toBeGreaterThan(0); expect(asciidocResult.content.length).toBeGreaterThan(0); }); }); interface TestData { original: string; result: any; } interface ReportData { markdown: TestData; asciidoc: TestData; } function generateHTMLReport(data: ReportData): string { const { markdown, asciidoc } = data; return `
Generated: ${new Date().toLocaleString()}
No frontmatter found
'}${escapeHtml(markdown.original)}
${escapeHtml(markdown.result.content)}
${escapeHtml(link.bech32)}
${link.text ? ` - ${escapeHtml(link.text)}` : ''}
${escapeHtml(wl.original)} → dtag: ${escapeHtml(wl.dtag)}
${wl.display ? ` (display: ${escapeHtml(wl.display)})` : ''}
#${escapeHtml(tag)}
No frontmatter found
'}${escapeHtml(asciidoc.original)}
${escapeHtml(asciidoc.result.content)}
${escapeHtml(link.bech32)}
${link.text ? ` - ${escapeHtml(link.text)}` : ''}
${escapeHtml(wl.original)} → dtag: ${escapeHtml(wl.dtag)}
${wl.display ? ` (display: ${escapeHtml(wl.display)})` : ''}
#${escapeHtml(tag)}