import assert from 'node:assert/strict' import test from 'node:test' import { extractTrustedHtmlBlocks, normalizeConversationText, restoreTrustedHtmlBlocks } from '../src/utils/conversationTrustedHtml.js' test('conversation trusted html helper preserves valid document cards', () => { const trustedBlock = [ '', '
', '
', '差旅申请', '查看', '
', '
', '' ].join('') const extracted = extractTrustedHtmlBlocks(`结果如下:\n\n${trustedBlock}`) assert.equal(extracted.trustedHtmlBlocks.length, 1) assert.match(extracted.content, /AI_TRUSTED_HTML_BLOCK_0/) const restored = restoreTrustedHtmlBlocks( '

AI_TRUSTED_HTML_BLOCK_0

\n', extracted.trustedHtmlBlocks ) assert.match(restored, /class="ai-document-card-list"/) assert.match(restored, /href="#ai-open-document-detail:CL-1"/) assert.doesNotMatch(restored, /AI_TRUSTED_HTML_BLOCK_0/) }) test('conversation trusted html helper rejects unsafe trusted blocks', () => { const extracted = extractTrustedHtmlBlocks([ '', '
', '危险', '
', '' ].join('')) assert.equal(extracted.trustedHtmlBlocks.length, 0) assert.equal(extracted.content.trim(), '') }) test('conversation trusted html helper normalizes business copy outside fences', () => { const normalized = normalizeConversationText([ '基础信息识别结果:请核对', '时间:2026-02-20', '', '```', '金额:不要改代码块', '```' ].join('\n'), { trim: true }) assert.match(normalized, /### 基础信息识别结果/) assert.match(normalized, /- \*\*时间\*\*:2026-02-20/) assert.match(normalized, /```\n金额:不要改代码块\n```/) })