mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-21 16:29:40 +02:00
Merge pull request #3524 from ashleybartlett/feature/3078-support-dashes-in-participant-names
[sequenceDiagrams] Support dashes in participant names
This commit is contained in:
@@ -37,7 +37,7 @@
|
|||||||
[0-9]+(?=[ \n]+) return 'NUM';
|
[0-9]+(?=[ \n]+) return 'NUM';
|
||||||
"participant" { this.begin('ID'); return 'participant'; }
|
"participant" { this.begin('ID'); return 'participant'; }
|
||||||
"actor" { this.begin('ID'); return 'participant_actor'; }
|
"actor" { this.begin('ID'); return 'participant_actor'; }
|
||||||
<ID>[^\->:\n,;]+?(?=((?!\n)\s)+"as"(?!\n)\s|[#\n;]|$) { yytext = yytext.trim(); this.begin('ALIAS'); return 'ACTOR'; }
|
<ID>[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+"as"(?!\n)\s|[#\n;]|$) { yytext = yytext.trim(); this.begin('ALIAS'); return 'ACTOR'; }
|
||||||
<ALIAS>"as" { this.popState(); this.popState(); this.begin('LINE'); return 'AS'; }
|
<ALIAS>"as" { this.popState(); this.popState(); this.begin('LINE'); return 'AS'; }
|
||||||
<ALIAS>(?:) { this.popState(); this.popState(); return 'NEWLINE'; }
|
<ALIAS>(?:) { this.popState(); this.popState(); return 'NEWLINE'; }
|
||||||
"loop" { this.begin('LINE'); return 'loop'; }
|
"loop" { this.begin('LINE'); return 'loop'; }
|
||||||
|
@@ -249,7 +249,7 @@ Bob-->Alice-in-Wonderland:I am good thanks!`;
|
|||||||
mermaidAPI.parse(str);
|
mermaidAPI.parse(str);
|
||||||
const actors = diagram.db.getActors();
|
const actors = diagram.db.getActors();
|
||||||
expect(actors['Alice-in-Wonderland'].description).toBe('Alice-in-Wonderland');
|
expect(actors['Alice-in-Wonderland'].description).toBe('Alice-in-Wonderland');
|
||||||
actors.Bob.description = 'Bob';
|
expect(actors.Bob.description).toBe('Bob');
|
||||||
|
|
||||||
const messages = diagram.db.getMessages();
|
const messages = diagram.db.getMessages();
|
||||||
|
|
||||||
@@ -257,6 +257,28 @@ Bob-->Alice-in-Wonderland:I am good thanks!`;
|
|||||||
expect(messages[0].from).toBe('Alice-in-Wonderland');
|
expect(messages[0].from).toBe('Alice-in-Wonderland');
|
||||||
expect(messages[1].from).toBe('Bob');
|
expect(messages[1].from).toBe('Bob');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should handle dashes in participant names', function () {
|
||||||
|
const str = `
|
||||||
|
sequenceDiagram
|
||||||
|
participant Alice-in-Wonderland
|
||||||
|
participant Bob
|
||||||
|
Alice-in-Wonderland->Bob:Hello Bob, how are - you?
|
||||||
|
Bob-->Alice-in-Wonderland:I am good thanks!`;
|
||||||
|
|
||||||
|
mermaidAPI.parse(str);
|
||||||
|
const actors = diagram.db.getActors();
|
||||||
|
expect(Object.keys(actors)).toEqual(['Alice-in-Wonderland', 'Bob']);
|
||||||
|
expect(actors['Alice-in-Wonderland'].description).toBe('Alice-in-Wonderland');
|
||||||
|
expect(actors.Bob.description).toBe('Bob');
|
||||||
|
|
||||||
|
const messages = diagram.db.getMessages();
|
||||||
|
|
||||||
|
expect(messages.length).toBe(2);
|
||||||
|
expect(messages[0].from).toBe('Alice-in-Wonderland');
|
||||||
|
expect(messages[1].from).toBe('Bob');
|
||||||
|
});
|
||||||
|
|
||||||
it('should alias participants', function () {
|
it('should alias participants', function () {
|
||||||
const str = `
|
const str = `
|
||||||
sequenceDiagram
|
sequenceDiagram
|
||||||
|
Reference in New Issue
Block a user