diff --git a/web-admin/src/utils/crm/contract-html-to-docx.test.ts b/web-admin/src/utils/crm/contract-html-to-docx.test.ts index e4db5ae1a..bdb153f44 100644 --- a/web-admin/src/utils/crm/contract-html-to-docx.test.ts +++ b/web-admin/src/utils/crm/contract-html-to-docx.test.ts @@ -2,11 +2,12 @@ import assert from 'node:assert/strict' import { describe, it } from 'node:test' import { buildContractDocxFileName, - injectSxWatermarkHtml, inlineRemoteImagesAsDataUrls, + normalizePartyFlexLayoutForDocx, parseContractSupplierCode, prepareContractHtmlForDocx, stripContractLogoHtml, + stripWatermarkHtml, toAbsoluteAssetUrls } from './contract-html-to-docx' @@ -34,6 +35,17 @@ describe('stripContractLogoHtml', () => { }) }) +describe('stripWatermarkHtml', () => { + it('removes watermark images', () => { + const html = + '

正文
' + const out = stripWatermarkHtml(html) + assert.equal(out.includes('watermask'), false) + assert.equal(out.includes('水印'), false) + assert.equal(out.includes('正文'), true) + }) +}) + describe('toAbsoluteAssetUrls', () => { it('prefixes root-relative src with origin', () => { const out = toAbsoluteAssetUrls( @@ -45,30 +57,45 @@ describe('toAbsoluteAssetUrls', () => { }) }) -describe('injectSxWatermarkHtml', () => { - it('prepends watermark image with absolute url', () => { - const out = injectSxWatermarkHtml('合同
', 'http://localhost:3006/watermask.jpg') - assert.equal(out.includes('http://localhost:3006/watermask.jpg'), true) - assert.equal(out.includes('alt="水印"'), true) - assert.equal(out.includes('合同
'), true) +describe('normalizePartyFlexLayoutForDocx', () => { + it('converts bottom party flex columns into a two-cell table', () => { + const html = ` +| ${children[0]} | ${children[1]} |