diff --git a/.changeset/fix-block-sanitize-config.md b/.changeset/fix-block-sanitize-config.md new file mode 100644 index 00000000000..9838243e390 --- /dev/null +++ b/.changeset/fix-block-sanitize-config.md @@ -0,0 +1,5 @@ +--- +'mermaid': patch +--- + +fix(block-beta): respect current DOMPurify config when sanitizing labels diff --git a/packages/mermaid/src/diagrams/block/parser/block.spec.ts b/packages/mermaid/src/diagrams/block/parser/block.spec.ts index e6ad90a65e6..f8f6c959cb5 100644 --- a/packages/mermaid/src/diagrams/block/parser/block.spec.ts +++ b/packages/mermaid/src/diagrams/block/parser/block.spec.ts @@ -1,11 +1,14 @@ // @ts-ignore: jison doesn't export types import block from './block.jison'; import db from '../blockDB.js'; +import * as configApi from '../../../config.js'; import { log } from '../../../logger.js'; describe('Block diagram', function () { describe('when parsing a block diagram graph it should handle > ', function () { beforeEach(function () { + configApi.setSiteConfig({}); + configApi.reset(); block.parser.yy = db; block.parser.yy.clear(); block.parser.yy.getLogger = () => console; @@ -34,6 +37,16 @@ describe('Block diagram', function () { expect(blocks[0].label).toBe('A label'); expect(blocks[0].type).toBe('square'); }); + it('sanitizes labels with the current dompurify config', () => { + configApi.setSiteConfig({ dompurifyConfig: { FORBID_TAGS: ['b'] } }); + const str = `block + id["Bold"] + `; + + block.parse(str); + const blocks = db.getBlocks(); + expect(blocks[0].label).toBe('Bold'); + }); it('a diagram with multiple nodes', () => { const str = `block id1