diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js b/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js index 3898e8775..3dfde5ccb 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow-text.spec.js @@ -369,6 +369,13 @@ describe('[Text] when parsing', () => { expect(vert['B'].text).toBe(`This node has a ${keyword} as text`); }); + it('should handle edge case for odd vertex with node id ending with minus', function () { + const res = flow.parser.parse('graph TD;A_node-->odd->Vertex Text];'); + const vert = flow.parser.yy.getVertices(); + + expect(vert['odd-'].type).toBe('odd'); + expect(vert['odd-'].text).toBe('Vertex Text'); + }); it('should allow forward slashes in lean_right vertices', function () { const rest = flow.parser.parse(`graph TD;A_node-->B[/This node has a / as text/];`); diff --git a/packages/mermaid/src/diagrams/flowchart/parser/flow.jison b/packages/mermaid/src/diagrams/flowchart/parser/flow.jison index 49a56e82b..a4584c808 100644 --- a/packages/mermaid/src/diagrams/flowchart/parser/flow.jison +++ b/packages/mermaid/src/diagrams/flowchart/parser/flow.jison @@ -154,7 +154,7 @@ that id. "[|" { return 'VERTEX_WITH_PROPS_START'; } -\>/!\s { this.pushState("text"); return 'TAGEND'; } +\> { this.pushState("text"); return 'TAGEND'; } ")]" { this.popState(); return 'CYLINDEREND'; } <*>"[(" { this.pushState("text") ;return 'CYLINDERSTART'; }