From f5445b266e7523c10ceca517d0cda6667ca2cf8a Mon Sep 17 00:00:00 2001 From: darshanr0107 Date: Wed, 6 Aug 2025 20:01:28 +0530 Subject: [PATCH] fix: incorrect arrow direction in block direction on-behalf-of: @Mermaid-Chart --- cypress/integration/rendering/block.spec.js | 21 +++++++++++++++++++ .../mermaid/src/diagrams/block/blockDB.ts | 10 +++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/cypress/integration/rendering/block.spec.js b/cypress/integration/rendering/block.spec.js index f01d59375..cdaad90d4 100644 --- a/cypress/integration/rendering/block.spec.js +++ b/cypress/integration/rendering/block.spec.js @@ -393,6 +393,27 @@ describe('Block diagram', () => { overflow:3 short:1 also_overflow:2 +`, + {} + ); + }); + + it('BL31: edge without arrow syntax should render with no arrowheads', () => { + imgSnapshotTest( + `block-beta + a + b + a --- b +`, + {} + ); + }); + it('BL32: edge with arrow syntax should render with arrowheads', () => { + imgSnapshotTest( + `block-beta + a + b + a --> b `, {} ); diff --git a/packages/mermaid/src/diagrams/block/blockDB.ts b/packages/mermaid/src/diagrams/block/blockDB.ts index 39a8b47a0..b291be61e 100644 --- a/packages/mermaid/src/diagrams/block/blockDB.ts +++ b/packages/mermaid/src/diagrams/block/blockDB.ts @@ -238,13 +238,15 @@ export function edgeTypeStr2Type(typeStr: string): string { } export function edgeStrToEdgeData(typeStr: string): string { - switch (typeStr.trim()) { - case '--x': + switch (typeStr.replace(/^[\s-]+|[\s-]+$/g, '')) { + case 'x': return 'arrow_cross'; - case '--o': + case 'o': return 'arrow_circle'; - default: + case '>': return 'arrow_point'; + default: + return ''; } }