diff --git a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js
index 7fbf4f4e3..1fb35bce6 100644
--- a/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js
+++ b/packages/mermaid/src/diagrams/sequence/sequenceDiagram.spec.js
@@ -93,15 +93,14 @@ function addConf(conf, key, value) {
}
// const parser = sequence.parser;
-let diagram;
describe('more than one sequence diagram', () => {
it('should not have duplicated messages', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob:Hello Bob, how are you?
Bob-->Alice: I am good thanks!`);
- expect(diagram1.db.getMessages()).toMatchInlineSnapshot(`
+ expect(diagram.db.getMessages()).toMatchInlineSnapshot(`
[
{
"activate": false,
@@ -183,6 +182,7 @@ describe('more than one sequence diagram', () => {
});
describe('when parsing a sequenceDiagram', function () {
+ let diagram;
beforeEach(async function () {
diagram = await Diagram.fromText(`
sequenceDiagram
@@ -190,14 +190,7 @@ Alice->Bob:Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!`);
});
- it('should handle a sequenceDiagram definition', async function () {
- const str = `
-sequenceDiagram
-Alice->Bob:Hello Bob, how are you?
-Note right of Bob: Bob thinks
-Bob-->Alice: I am good thanks!`;
-
- await mermaidAPI.parse(str);
+ it('should handle a sequenceDiagram definition', function () {
const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
@@ -215,7 +208,6 @@ Alice->Bob:Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!`;
- await mermaidAPI.parse(str);
await diagram.renderer.draw(str, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility auto numbers
expect(diagram.db.showSequenceNumbers()).toBe(false);
});
@@ -227,27 +219,27 @@ Alice->Bob:Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!`;
- const diagram1 = await Diagram.fromText(str);
+ const diagram = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1); // needs to be rendered for the correct value of visibility auto numbers
- expect(diagram1.db.showSequenceNumbers()).toBe(true);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram); // needs to be rendered for the correct value of visibility auto numbers
+ expect(diagram.db.showSequenceNumbers()).toBe(true);
});
it('should handle a sequenceDiagram definition with a title:', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
title: Diagram Title
Alice->Bob:Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- expect(diagram1.db.getAccDescription()).toBe('');
- const messages = diagram1.db.getMessages();
- const title = diagram1.db.getDiagramTitle();
+ expect(diagram.db.getAccDescription()).toBe('');
+ const messages = diagram.db.getMessages();
+ const title = diagram.db.getDiagramTitle();
expect(messages.length).toBe(3);
expect(messages[0].from).toBe('Alice');
@@ -256,20 +248,20 @@ Bob-->Alice: I am good thanks!`);
});
it('should handle a sequenceDiagram definition with a title without a :', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
title Diagram Title
Alice->Bob:Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- expect(diagram1.db.getAccDescription()).toBe('');
- const messages = diagram1.db.getMessages();
- const title = diagram1.db.getDiagramTitle();
+ expect(diagram.db.getAccDescription()).toBe('');
+ const messages = diagram.db.getMessages();
+ const title = diagram.db.getDiagramTitle();
expect(messages.length).toBe(3);
expect(messages[0].from).toBe('Alice');
@@ -278,7 +270,7 @@ Bob-->Alice: I am good thanks!`);
});
it('should handle a sequenceDiagram definition with a accessibility title and description (accDescr)', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
title: Diagram Title
accTitle: This is the title
@@ -286,12 +278,12 @@ accDescr: Accessibility Description
Alice->Bob:Hello Bob, how are you?
`);
- expect(diagram1.db.getDiagramTitle()).toBe('Diagram Title');
- expect(diagram1.db.getAccTitle()).toBe('This is the title');
- expect(diagram1.db.getAccDescription()).toBe('Accessibility Description');
+ expect(diagram.db.getDiagramTitle()).toBe('Diagram Title');
+ expect(diagram.db.getAccTitle()).toBe('This is the title');
+ expect(diagram.db.getAccDescription()).toBe('Accessibility Description');
});
it('should handle a sequenceDiagram definition with a accessibility title and multiline description (accDescr)', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
accTitle: This is the title
accDescr {
@@ -301,37 +293,37 @@ Description
Alice->Bob:Hello Bob, how are you?
`);
- expect(diagram1.db.getAccTitle()).toBe('This is the title');
- expect(diagram1.db.getAccDescription()).toBe('Accessibility\nDescription');
+ expect(diagram.db.getAccTitle()).toBe('This is the title');
+ expect(diagram.db.getAccDescription()).toBe('Accessibility\nDescription');
});
it('should space in actor names', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob:Hello Bob, how are - you?
Bob-->Alice: I am good thanks!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(2);
expect(messages[0].from).toBe('Alice');
expect(messages[1].from).toBe('Bob');
});
it('should handle dashes in actor names', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice-in-Wonderland->Bob:Hello Bob, how are - you?
Bob-->Alice-in-Wonderland:I am good thanks!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice-in-Wonderland').description).toBe('Alice-in-Wonderland');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(2);
expect(messages[0].from).toBe('Alice-in-Wonderland');
@@ -339,19 +331,19 @@ Bob-->Alice-in-Wonderland:I am good thanks!`);
});
it('should handle dashes in participant names', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant Alice-in-Wonderland
participant Bob
Alice-in-Wonderland->Bob:Hello Bob, how are - you?
Bob-->Alice-in-Wonderland:I am good thanks!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect([...actors.keys()]).toEqual(['Alice-in-Wonderland', 'Bob']);
expect(actors.get('Alice-in-Wonderland').description).toBe('Alice-in-Wonderland');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(2);
expect(messages[0].from).toBe('Alice-in-Wonderland');
@@ -359,26 +351,26 @@ Bob-->Alice-in-Wonderland:I am good thanks!`);
});
it('should alias participants', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant A as Alice
participant B as Bob
A->B:Hello Bob, how are you?
B-->A: I am good thanks!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect([...actors.keys()]).toEqual(['A', 'B']);
expect(actors.get('A').description).toBe('Alice');
expect(actors.get('B').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(2);
expect(messages[0].from).toBe('A');
expect(messages[1].from).toBe('B');
});
it('should alias a mix of actors and participants apa12', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
actor Alice as Alice2
actor Bob
@@ -390,7 +382,7 @@ sequenceDiagram
John->>Mandy: Hi Mandy
Mandy ->>Joan: Hi Joan`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect([...actors.keys()]).toEqual(['Alice', 'Bob', 'John', 'Mandy', 'Joan']);
expect(actors.get('Alice').description).toBe('Alice2');
expect(actors.get('Alice').type).toBe('actor');
@@ -398,212 +390,212 @@ sequenceDiagram
expect(actors.get('John').type).toBe('participant');
expect(actors.get('Joan').type).toBe('participant');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(5);
expect(messages[0].from).toBe('Alice');
expect(messages[4].to).toBe('Joan');
});
it('should alias actors apa13', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
actor A as Alice
actor B as Bob
A->B:Hello Bob, how are you?
B-->A: I am good thanks!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect([...actors.keys()]).toEqual(['A', 'B']);
expect(actors.get('A').description).toBe('Alice');
expect(actors.get('B').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(2);
expect(messages[0].from).toBe('A');
expect(messages[1].from).toBe('B');
});
it('should handle in async messages', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice-xBob:Hello Bob, how are you?`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(1);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.SOLID_CROSS);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.SOLID_CROSS);
});
it('should handle in async dotted messages', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice--xBob:Hello Bob, how are you?`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(1);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.DOTTED_CROSS);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.DOTTED_CROSS);
});
it('should handle in sync messages', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice-)Bob:Hello Bob, how are you?`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(1);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.SOLID_POINT);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.SOLID_POINT);
});
it('should handle in sync dotted messages', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice--)Bob:Hello Bob, how are you?`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(1);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.DOTTED_POINT);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.DOTTED_POINT);
});
it('should handle in arrow messages', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->>Bob:Hello Bob, how are you?`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(1);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.SOLID);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.SOLID);
});
it('should handle in arrow messages', async () => {
- const diagram1 = await Diagram.fromText(
+ const diagram = await Diagram.fromText(
'sequenceDiagram\n' + 'Alice-->>Bob:Hello Bob, how are you?'
);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(1);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.DOTTED);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.DOTTED);
});
it('should handle bidirectional arrow messages', async () => {
- const diagram1 = await Diagram.fromText(
+ const diagram = await Diagram.fromText(
`
sequenceDiagram
Alice<<->>Bob:Hello Bob, how are you?`
);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(1);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.BIDIRECTIONAL_SOLID);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.BIDIRECTIONAL_SOLID);
});
it('should handle bidirectional dotted arrow messages', async () => {
- const diagram1 = await Diagram.fromText(
+ const diagram = await Diagram.fromText(
`
sequenceDiagram
Alice<<-->>Bob:Hello Bob, how are you?`
);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(1);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.BIDIRECTIONAL_DOTTED);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.BIDIRECTIONAL_DOTTED);
});
it('should handle actor activation', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice-->>Bob:Hello Bob, how are you?
activate Bob
Bob-->>Alice:Hello Alice, I'm fine and you?
deactivate Bob`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(4);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.DOTTED);
- expect(messages[1].type).toBe(diagram1.db.LINETYPE.ACTIVE_START);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.DOTTED);
+ expect(messages[1].type).toBe(diagram.db.LINETYPE.ACTIVE_START);
expect(messages[1].from).toBe('Bob');
- expect(messages[2].type).toBe(diagram1.db.LINETYPE.DOTTED);
- expect(messages[3].type).toBe(diagram1.db.LINETYPE.ACTIVE_END);
+ expect(messages[2].type).toBe(diagram.db.LINETYPE.DOTTED);
+ expect(messages[3].type).toBe(diagram.db.LINETYPE.ACTIVE_END);
expect(messages[3].from).toBe('Bob');
});
it('should handle actor one line notation activation', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice-->>+Bob:Hello Bob, how are you?
Bob-->>- Alice:Hello Alice, I'm fine and you?`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(4);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.DOTTED);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.DOTTED);
expect(messages[0].activate).toBeTruthy();
- expect(messages[1].type).toBe(diagram1.db.LINETYPE.ACTIVE_START);
+ expect(messages[1].type).toBe(diagram.db.LINETYPE.ACTIVE_START);
expect(messages[1].from).toBe('Bob');
- expect(messages[2].type).toBe(diagram1.db.LINETYPE.DOTTED);
- expect(messages[3].type).toBe(diagram1.db.LINETYPE.ACTIVE_END);
+ expect(messages[2].type).toBe(diagram.db.LINETYPE.DOTTED);
+ expect(messages[3].type).toBe(diagram.db.LINETYPE.ACTIVE_END);
expect(messages[3].from).toBe('Bob');
});
it('should handle stacked activations', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice-->>+Bob:Hello Bob, how are you?
Bob-->>+Carol:Carol, let me introduce Alice?
Bob-->>- Alice:Hello Alice, please meet Carol?
Carol->>- Bob:Oh Bob, I'm so happy to be here!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(8);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.DOTTED);
- expect(messages[1].type).toBe(diagram1.db.LINETYPE.ACTIVE_START);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.DOTTED);
+ expect(messages[1].type).toBe(diagram.db.LINETYPE.ACTIVE_START);
expect(messages[1].from).toBe('Bob');
- expect(messages[2].type).toBe(diagram1.db.LINETYPE.DOTTED);
- expect(messages[3].type).toBe(diagram1.db.LINETYPE.ACTIVE_START);
+ expect(messages[2].type).toBe(diagram.db.LINETYPE.DOTTED);
+ expect(messages[3].type).toBe(diagram.db.LINETYPE.ACTIVE_START);
expect(messages[3].from).toBe('Carol');
- expect(messages[5].type).toBe(diagram1.db.LINETYPE.ACTIVE_END);
+ expect(messages[5].type).toBe(diagram.db.LINETYPE.ACTIVE_END);
expect(messages[5].from).toBe('Bob');
- expect(messages[7].type).toBe(diagram1.db.LINETYPE.ACTIVE_END);
+ expect(messages[7].type).toBe(diagram.db.LINETYPE.ACTIVE_END);
expect(messages[7].from).toBe('Carol');
});
it('should handle fail parsing when activating an inactive participant', async () => {
@@ -633,25 +625,25 @@ deactivate Bob`);
});
it('should handle comments in a sequenceDiagram', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
%% Comment
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(3);
expect(messages[0].from).toBe('Alice');
expect(messages[2].from).toBe('Bob');
});
it('should handle new lines in a sequenceDiagram', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
@@ -660,32 +652,32 @@ deactivate Bob`);
Bob-->Alice: I am good thanks!
`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(3);
expect(messages[0].from).toBe('Alice');
expect(messages[2].from).toBe('Bob');
});
it('should handle semicolons', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram;Alice->Bob: Hello Bob, how are you?;Note right of Bob: Bob thinks;Bob-->Alice: I am good thanks!;`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(3);
expect(messages[0].from).toBe('Alice');
expect(messages[2].from).toBe('Bob');
});
it('should handle one leading space in lines in a sequenceDiagram', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
@@ -693,18 +685,18 @@ sequenceDiagram
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(3);
expect(messages[0].from).toBe('Alice');
expect(messages[2].from).toBe('Bob');
});
it('should handle several leading spaces in lines in a sequenceDiagram', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
@@ -712,18 +704,18 @@ sequenceDiagram
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(3);
expect(messages[0].from).toBe('Alice');
expect(messages[2].from).toBe('Bob');
});
it('should handle several leading spaces in lines in a sequenceDiagram', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant Alice
participant Bob
@@ -736,18 +728,18 @@ Note right of John: Rational thoughts
prevail...
John->Bob: How about you?
Bob-->John: Jolly good!`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(8);
expect(messages[0].from).toBe('Alice');
expect(messages[2].from).toBe('John');
});
it('should handle different line breaks', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant 1 as multiline
text
participant 2 as multiline
text
@@ -763,13 +755,13 @@ note right of 4: multiline
text
note right of 1: multiline
text
`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('1').description).toBe('multiline
text');
expect(actors.get('2').description).toBe('multiline
text');
expect(actors.get('3').description).toBe('multiline
text');
expect(actors.get('4').description).toBe('multiline
text');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[0].message).toBe('multiline
text');
expect(messages[1].message).toBe('multiline
text');
expect(messages[2].message).toBe('multiline
text');
@@ -780,7 +772,7 @@ note right of 1: multiline
text
expect(messages[7].message).toBe('multiline
text');
});
it('should handle notes and messages without wrap specified', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant 1
participant 2
@@ -796,7 +788,7 @@ note right of 4: multiline
text
note right of 1:nowrap: multiline
text
`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[0].message).toBe('single-line text');
expect(messages[1].message).toBe('single-line text');
expect(messages[2].message).toBe('single-line text');
@@ -817,7 +809,7 @@ note right of 1:nowrap: multiline
text
expect(messages[7].wrap).toBe(false);
});
it('should handle notes and messages with wrap specified', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant 1
participant 2
@@ -829,7 +821,7 @@ note right of 2:wrap: single-line text
note right of 3:wrap: multiline
text
`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[0].message).toBe('single-line text');
expect(messages[1].message).toBe('single-line text');
expect(messages[2].message).toBe('multiline
text');
@@ -840,7 +832,7 @@ note right of 3:wrap: multiline
text
expect(messages[3].wrap).toBe(true);
});
it('should handle notes and messages with nowrap or line breaks', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant 1
participant 2
@@ -848,39 +840,39 @@ participant 2
note right of 2: single-line text
`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[0].message).toBe('single-line text');
expect(messages[1].message).toBe('single-line text');
expect(messages[0].wrap).toBe(false);
expect(messages[1].wrap).toBe(false);
});
it('should handle notes over a single actor', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
Note over Bob: Bob thinks
`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].from).toBe('Bob');
expect(messages[1].to).toBe('Bob');
});
it('should handle notes over multiple actors', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
Note over Alice,Bob: confusion
Note over Bob,Alice: resolution
`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].from).toBe('Alice');
expect(messages[1].to).toBe('Bob');
expect(messages[2].from).toBe('Bob');
expect(messages[2].to).toBe('Alice');
});
it('should handle loop statements', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
@@ -891,18 +883,18 @@ loop Multiple happy responses
Bob-->Alice: I am good thanks!
end`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(5);
expect(messages[0].from).toBe('Alice');
expect(messages[1].from).toBe('Bob');
});
it('should add a rect around sequence', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
%% Comment
@@ -912,20 +904,20 @@ end`);
end
`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
- expect(messages[1].type).toEqual(diagram1.db.LINETYPE.RECT_START);
+ const messages = diagram.db.getMessages();
+ expect(messages[1].type).toEqual(diagram.db.LINETYPE.RECT_START);
expect(messages[1].message).toBe('rgb(200, 255, 200)');
- expect(messages[2].type).toEqual(diagram1.db.LINETYPE.NOTE);
- expect(messages[3].type).toEqual(diagram1.db.LINETYPE.DOTTED_OPEN);
- expect(messages[4].type).toEqual(diagram1.db.LINETYPE.RECT_END);
+ expect(messages[2].type).toEqual(diagram.db.LINETYPE.NOTE);
+ expect(messages[3].type).toEqual(diagram.db.LINETYPE.DOTTED_OPEN);
+ expect(messages[4].type).toEqual(diagram.db.LINETYPE.RECT_END);
});
it('should allow for nested rects', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
%% Comment
@@ -937,22 +929,22 @@ end`);
end
`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
- expect(messages[1].type).toEqual(diagram1.db.LINETYPE.RECT_START);
+ const messages = diagram.db.getMessages();
+ expect(messages[1].type).toEqual(diagram.db.LINETYPE.RECT_START);
expect(messages[1].message).toBe('rgb(200, 255, 200)');
- expect(messages[2].type).toEqual(diagram1.db.LINETYPE.RECT_START);
+ expect(messages[2].type).toEqual(diagram.db.LINETYPE.RECT_START);
expect(messages[2].message).toBe('rgb(0, 0, 0)');
- expect(messages[3].type).toEqual(diagram1.db.LINETYPE.NOTE);
- expect(messages[4].type).toEqual(diagram1.db.LINETYPE.RECT_END);
- expect(messages[5].type).toEqual(diagram1.db.LINETYPE.DOTTED_OPEN);
- expect(messages[6].type).toEqual(diagram1.db.LINETYPE.RECT_END);
+ expect(messages[3].type).toEqual(diagram.db.LINETYPE.NOTE);
+ expect(messages[4].type).toEqual(diagram.db.LINETYPE.RECT_END);
+ expect(messages[5].type).toEqual(diagram.db.LINETYPE.DOTTED_OPEN);
+ expect(messages[6].type).toEqual(diagram.db.LINETYPE.RECT_END);
});
it('should handle opt statements', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
@@ -963,18 +955,18 @@ opt Perhaps a happy response
Bob-->Alice: I am good thanks!
end`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(5);
expect(messages[0].from).toBe('Alice');
expect(messages[1].from).toBe('Bob');
});
it('should handle alt statements', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
@@ -987,19 +979,19 @@ else isSick
Bob-->Alice: Feel sick...
end`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
actors.get('Bob').description = 'Bob';
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(7);
expect(messages[0].from).toBe('Alice');
expect(messages[1].from).toBe('Bob');
});
it('should handle alt statements with multiple elses', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
@@ -1014,38 +1006,38 @@ else default
Bob-->Alice: :-)
end`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(9);
expect(messages[1].from).toBe('Bob');
- expect(messages[2].type).toBe(diagram1.db.LINETYPE.ALT_START);
+ expect(messages[2].type).toBe(diagram.db.LINETYPE.ALT_START);
expect(messages[3].from).toBe('Bob');
- expect(messages[4].type).toBe(diagram1.db.LINETYPE.ALT_ELSE);
+ expect(messages[4].type).toBe(diagram.db.LINETYPE.ALT_ELSE);
expect(messages[5].from).toBe('Bob');
- expect(messages[6].type).toBe(diagram1.db.LINETYPE.ALT_ELSE);
+ expect(messages[6].type).toBe(diagram.db.LINETYPE.ALT_ELSE);
expect(messages[7].from).toBe('Bob');
- expect(messages[8].type).toBe(diagram1.db.LINETYPE.ALT_END);
+ expect(messages[8].type).toBe(diagram.db.LINETYPE.ALT_END);
});
it('should handle critical statements without options', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
critical Establish a connection to the DB
Service-->DB: connect
end`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Service').description).toBe('Service');
expect(actors.get('DB').description).toBe('DB');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(3);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.CRITICAL_START);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.CRITICAL_START);
expect(messages[1].from).toBe('Service');
- expect(messages[2].type).toBe(diagram1.db.LINETYPE.CRITICAL_END);
+ expect(messages[2].type).toBe(diagram.db.LINETYPE.CRITICAL_END);
});
it('should handle critical statements with options', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
critical Establish a connection to the DB
Service-->DB: connect
@@ -1055,24 +1047,24 @@ sequenceDiagram
Service-->Service: Log different error
end`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Service').description).toBe('Service');
expect(actors.get('DB').description).toBe('DB');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(7);
- expect(messages[0].type).toBe(diagram1.db.LINETYPE.CRITICAL_START);
+ expect(messages[0].type).toBe(diagram.db.LINETYPE.CRITICAL_START);
expect(messages[1].from).toBe('Service');
- expect(messages[2].type).toBe(diagram1.db.LINETYPE.CRITICAL_OPTION);
+ expect(messages[2].type).toBe(diagram.db.LINETYPE.CRITICAL_OPTION);
expect(messages[3].from).toBe('Service');
- expect(messages[4].type).toBe(diagram1.db.LINETYPE.CRITICAL_OPTION);
+ expect(messages[4].type).toBe(diagram.db.LINETYPE.CRITICAL_OPTION);
expect(messages[5].from).toBe('Service');
- expect(messages[6].type).toBe(diagram1.db.LINETYPE.CRITICAL_END);
+ expect(messages[6].type).toBe(diagram.db.LINETYPE.CRITICAL_END);
});
it('should handle break statements', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Consumer-->API: Book something
API-->BookingService: Start booking process
@@ -1081,23 +1073,23 @@ sequenceDiagram
end
API-->BillingService: Start billing process`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Consumer').description).toBe('Consumer');
expect(actors.get('API').description).toBe('API');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(6);
expect(messages[0].from).toBe('Consumer');
expect(messages[1].from).toBe('API');
- expect(messages[2].type).toBe(diagram1.db.LINETYPE.BREAK_START);
+ expect(messages[2].type).toBe(diagram.db.LINETYPE.BREAK_START);
expect(messages[3].from).toBe('API');
- expect(messages[4].type).toBe(diagram1.db.LINETYPE.BREAK_END);
+ expect(messages[4].type).toBe(diagram.db.LINETYPE.BREAK_END);
expect(messages[5].from).toBe('API');
});
it('should handle par statements a sequenceDiagram', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
par Parallel one
Alice->>Bob: Hello Bob, how are you?
@@ -1110,12 +1102,12 @@ Alice->>Bob: What do you think about it?
Bob-->>Alice: It's good!
end`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(10);
expect(messages[0].message).toBe('Parallel one');
@@ -1123,7 +1115,7 @@ end`);
expect(messages[2].from).toBe('Bob');
});
it('it should handle par_over statements', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
par_over Parallel overlap
Alice ->> Bob: Message
@@ -1131,12 +1123,12 @@ Note left of Alice: Alice note
Note right of Bob: Bob note
end`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('Alice').description).toBe('Alice');
expect(actors.get('Bob').description).toBe('Bob');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages.length).toBe(5);
expect(messages[0].message).toBe('Parallel overlap');
@@ -1145,44 +1137,44 @@ end`);
expect(messages[3].from).toBe('Bob');
});
it('should handle special characters in signals', async () => {
- const diagram1 = await Diagram.fromText('sequenceDiagram\n' + 'Alice->Bob: -:<>,;# comment');
+ const diagram = await Diagram.fromText('sequenceDiagram\n' + 'Alice->Bob: -:<>,;# comment');
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[0].message).toBe('-:<>,');
});
it('should handle special characters in notes', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
Note right of Bob: -:<>,;# comment`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].message).toBe('-:<>,');
});
it('should handle special characters in loop', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
loop -:<>,;# comment
Bob-->Alice: I am good thanks!
end`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].message).toBe('-:<>,');
});
it('should handle special characters in opt', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
opt -:<>,;# comment
Bob-->Alice: I am good thanks!
end`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].message).toBe('-:<>,');
});
it('should handle special characters in alt', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
alt -:<>,;# comment
@@ -1191,12 +1183,12 @@ else ,<>:-#; comment
Bob-->Alice: I am good thanks!
end`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].message).toBe('-:<>,');
expect(messages[3].message).toBe(',<>:-');
});
it('should handle special characters in par', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
par -:<>,;# comment
@@ -1205,36 +1197,36 @@ and ,<>:-#; comment
Bob-->Alice: I am good thanks!
end`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].message).toBe('-:<>,');
expect(messages[3].message).toBe(',<>:-');
});
it('should handle no-label loop', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
loop
Bob-->Alice: I am good thanks!
end`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].message).toBe('');
expect(messages[2].message).toBe('I am good thanks!');
});
it('should handle no-label opt', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
opt # comment
Bob-->Alice: I am good thanks!
end`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].message).toBe('');
expect(messages[2].message).toBe('I am good thanks!');
});
it('should handle no-label alt', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
alt;Bob-->Alice: I am good thanks!
@@ -1242,14 +1234,14 @@ else # comment
Bob-->Alice: I am good thanks!
end`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].message).toBe('');
expect(messages[2].message).toBe('I am good thanks!');
expect(messages[3].message).toBe('');
expect(messages[4].message).toBe('I am good thanks!');
});
it('should handle no-label par', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
par;Bob-->Alice: I am good thanks!
@@ -1257,7 +1249,7 @@ and # comment
Bob-->Alice: I am good thanks!
end`);
- const messages = diagram1.db.getMessages();
+ const messages = diagram.db.getMessages();
expect(messages[1].message).toBe('');
expect(messages[2].message).toBe('I am good thanks!');
expect(messages[3].message).toBe('');
@@ -1265,7 +1257,7 @@ end`);
});
it('should handle links', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant a as Alice
participant b as Bob
@@ -1278,7 +1270,7 @@ link a: Swagger @ https://swagger.contoso.com
link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com
`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('a').links.Repo).toBe('https://repo.contoso.com/');
expect(actors.get('b').links.Repo).toBe(undefined);
expect(actors.get('a').links.Dashboard).toBe('https://dashboard.contoso.com/');
@@ -1292,7 +1284,7 @@ link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com
it('should handle properties EXPERIMENTAL: USE WITH CAUTION', async () => {
//Be aware that the syntax for "properties" is likely to be changed.
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant a as Alice
participant b as Bob
@@ -1301,7 +1293,7 @@ properties a: {"class": "internal-service-actor", "icon": "@clock"}
properties b: {"class": "external-service-actor", "icon": "@computer"}
`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect(actors.get('a').properties.class).toBe('internal-service-actor');
expect(actors.get('b').properties.class).toBe('external-service-actor');
expect(actors.get('a').properties.icon).toBe('@clock');
@@ -1310,7 +1302,7 @@ properties b: {"class": "external-service-actor", "icon": "@computer"}
});
it('should handle box', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
box green Group 1
participant a as Alice
@@ -1325,14 +1317,14 @@ link a: Swagger @ https://swagger.contoso.com
link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com
`);
- const boxes = diagram1.db.getBoxes();
+ const boxes = diagram.db.getBoxes();
expect(boxes[0].name).toEqual('Group 1');
expect(boxes[0].actorKeys).toEqual(['a', 'b']);
expect(boxes[0].fill).toEqual('green');
});
it('should handle box without color', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
box Group 1
participant a as Alice
@@ -1347,14 +1339,14 @@ link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com
link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com
`);
- const boxes = diagram1.db.getBoxes();
+ const boxes = diagram.db.getBoxes();
expect(boxes[0].name).toEqual('Group 1');
expect(boxes[0].actorKeys).toEqual(['a', 'b']);
expect(boxes[0].fill).toEqual('transparent');
});
it('should handle box without description', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
box Aqua
participant a as Alice
@@ -1369,14 +1361,14 @@ link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com
link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com
`);
- const boxes = diagram1.db.getBoxes();
+ const boxes = diagram.db.getBoxes();
expect(boxes[0].name).toBeFalsy();
expect(boxes[0].actorKeys).toEqual(['a', 'b']);
expect(boxes[0].fill).toEqual('Aqua');
});
it('should handle simple actor creation', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant a as Alice
a ->>b: Hello Bob?
@@ -1386,8 +1378,8 @@ link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com
create actor d as Donald
a ->> d: Hello Donald?
`);
- const actors = diagram1.db.getActors();
- const createdActors = diagram1.db.getCreatedActors();
+ const actors = diagram.db.getActors();
+ const createdActors = diagram.db.getCreatedActors();
expect(actors.get('c').name).toEqual('c');
expect(actors.get('c').description).toEqual('c');
expect(actors.get('c').type).toEqual('participant');
@@ -1398,7 +1390,7 @@ link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com
expect(createdActors.get('d')).toEqual(3);
});
it('should handle simple actor destruction', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant a as Alice
a ->>b: Hello Bob?
@@ -1408,7 +1400,7 @@ link a: Tests @ https://tests.contoso.com/?svc=alice@contoso.com
destroy c
b ->> c: Where are you?
`);
- const destroyedActors = diagram1.db.getDestroyedActors();
+ const destroyedActors = diagram.db.getDestroyedActors();
expect(destroyedActors.get('a')).toEqual(1);
expect(destroyedActors.get('c')).toEqual(3);
});
@@ -1447,7 +1439,12 @@ describe('when checking the bounds in a sequenceDiagram', function () {
});
let conf;
- beforeEach(function () {
+ let diagram;
+ beforeEach(async function () {
+ diagram = await Diagram.fromText(`
+ sequenceDiagram
+ Alice->Bob:Hello Bob, how are you?
+ Bob-->Alice: I am good thanks!`);
mermaidAPI.reset();
diagram.renderer.bounds.init();
conf = diagram.db.getConfig();
@@ -1576,7 +1573,7 @@ describe('when rendering a sequenceDiagram APA', function () {
setSiteConfig({ logLevel: 5, sequence: conf });
});
let conf;
- beforeEach(async function () {
+ beforeEach(function () {
mermaidAPI.reset();
// });
@@ -1595,11 +1592,6 @@ describe('when rendering a sequenceDiagram APA', function () {
mirrorActors: false,
};
setSiteConfig({ logLevel: 5, sequence: conf });
- diagram = await Diagram.fromText(`
-sequenceDiagram
-Alice->Bob:Hello Bob, how are you?
-Note right of Bob: Bob thinks
-Bob-->Alice: I am good thanks!`);
});
['tspan', 'fo', 'old', undefined].forEach(function (textPlacement) {
it(`
@@ -1608,11 +1600,11 @@ it should handle one actor, when textPlacement is ${textPlacement}`, async () =>
sequenceDiagram
participant Alice`;
- const diagram1 = await Diagram.fromText(str);
+ const diagram = await Diagram.fromText(str);
// diagram.renderer.setConf(mermaidAPI.getConfig().sequence);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds } = diagram1.renderer.bounds.getBounds();
+ const { bounds } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
expect(bounds.stopx).toBe(conf.width);
@@ -1620,14 +1612,14 @@ participant Alice`;
});
});
it('should handle same actor with different whitespace properly', async () => {
- const diagram1 = await Diagram.fromText(`
+ const diagram = await Diagram.fromText(`
sequenceDiagram
participant Alice
participant Alice
participant Alice
`);
- const actors = diagram1.db.getActors();
+ const actors = diagram.db.getActors();
expect([...actors.keys()]).toEqual(['Alice']);
});
it('should handle one actor and a centered note', async () => {
@@ -1636,12 +1628,12 @@ sequenceDiagram
participant Alice
Note over Alice: Alice thinks
`;
- const diagram1 = await Diagram.fromText(str);
+ const diagram = await Diagram.fromText(str);
expect(mermaidAPI.getConfig().sequence.mirrorActors).toBeFalsy();
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
expect(bounds.stopx).toBe(conf.width);
@@ -1654,10 +1646,10 @@ sequenceDiagram
participant Alice
Note left of Alice: Alice thinks`;
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(-(conf.width / 2) - conf.actorMargin / 2);
expect(bounds.starty).toBe(0);
expect(bounds.stopx).toBe(conf.width);
@@ -1670,10 +1662,10 @@ sequenceDiagram
participant Alice
Note right of Alice: Alice thinks`;
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
expect(bounds.stopx).toBe(conf.width / 2 + conf.actorMargin / 2 + conf.width);
@@ -1685,10 +1677,10 @@ Note right of Alice: Alice thinks`;
sequenceDiagram
Alice->Bob: Hello Bob, how are you?`;
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin);
@@ -1703,10 +1695,10 @@ participant Bob
end
Alice->Bob: Hello Bob, how are you?`;
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin + conf.boxTextMargin * 2);
@@ -1718,10 +1710,10 @@ Alice->Bob: Hello Bob, how are you?`;
sequenceDiagram
Alice->Bob: Hello Bob, how are you?`;
await mermaidAPI.parse(str);
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
const mermaid = mermaidAPI.getConfig();
expect(mermaid.logLevel).toBe(0);
expect(bounds.startx).toBe(0);
@@ -1737,11 +1729,11 @@ sequenceDiagram
Alice->Bob: Hello Bob, how are you?`;
await mermaidAPI.parse(str);
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const msgs = diagram1.db.getMessages();
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const msgs = diagram.db.getMessages();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
const mermaid = mermaidAPI.getConfig();
expect(mermaid.logLevel).toBe(0);
expect(bounds.startx).toBe(0);
@@ -1757,11 +1749,11 @@ Alice->Bob: Hello Bob, how are you?
Note over Alice,Bob: Looks
Note over Bob,Alice: Looks back
`;
- const diagram1 = await Diagram.fromText(str);
+ const diagram = await Diagram.fromText(str);
// mermaidAPI.initialize({logLevel:0})
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin);
@@ -1773,10 +1765,10 @@ sequenceDiagram
Alice->Bob: Hello Bob, how are you?
Bob->Alice: Fine!`;
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
expect(bounds.stopx).toBe(conf.width * 2 + conf.actorMargin);
@@ -1789,10 +1781,10 @@ Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob->Alice: Fine!`;
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
@@ -1808,10 +1800,10 @@ Alice->Bob: Hello Bob, how are you?
Note left of Alice: Bob thinks
Bob->Alice: Fine!`;
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(-(conf.width / 2) - conf.actorMargin / 2);
expect(bounds.starty).toBe(0);
@@ -1825,11 +1817,11 @@ Alice->>Bob:wrap: Hello Bob, how are you? If you are not available right now, I
Note left of Alice: Bob thinks
Bob->>Alice: Fine!`;
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
- const msgs = diagram1.db.getMessages();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
+ const msgs = diagram.db.getMessages();
expect(bounds.startx).toBe(-(conf.width / 2) - conf.actorMargin / 2);
expect(bounds.starty).toBe(0);
expect(msgs[0].wrap).toBe(true);
@@ -1847,11 +1839,11 @@ Note left of Alice: Bob thinks
Bob->>Alice: Fine!`;
await mermaidAPI.parse(str);
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
- const msgs = diagram1.db.getMessages();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
+ const msgs = diagram.db.getMessages();
const mermaid = mermaidAPI.getConfig();
expect(bounds.startx).toBe(-(conf.width / 2) - conf.actorMargin / 2);
expect(bounds.starty).toBe(0);
@@ -1871,12 +1863,12 @@ Note left of Alice: Bob thinks
Bob->>Alice: Fine!`;
await mermaidAPI.parse(str);
- const diagram1 = await Diagram.fromText(str);
+ const diagram = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
- const msgs = diagram1.db.getMessages();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
+ const msgs = diagram.db.getMessages();
const mermaid = mermaidAPI.getConfig();
expect(bounds.startx).toBe(-(conf.width / 2) - conf.actorMargin / 2);
expect(bounds.starty).toBe(0);
@@ -1895,11 +1887,11 @@ Note left of Alice: Bob thinks
Bob->>Alice: Fine!`;
// mermaidAPI.initialize({ logLevel: 0 });
await mermaidAPI.parse(str);
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
- const msgs = diagram1.db.getMessages();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
+ const msgs = diagram.db.getMessages();
const mermaid = mermaidAPI.getConfig();
expect(bounds.startx).toBe(-(conf.width / 2) - conf.actorMargin / 2);
expect(bounds.starty).toBe(0);
@@ -1920,9 +1912,9 @@ loop Cheers
Bob->Alice: Fine!
end`;
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
@@ -1937,9 +1929,9 @@ end`;
Bob->Alice: I feel surrounded by darkness
end
`;
- const diagram1 = await Diagram.fromText(str);
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const diagram = await Diagram.fromText(str);
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
@@ -1971,23 +1963,26 @@ describe('when rendering a sequenceDiagram with actor mirror activated', () => {
});
let conf;
- beforeEach(function () {
+ let diagram;
+ beforeEach(async function () {
+ diagram = await Diagram.fromText(`
+ sequenceDiagram
+ Alice->Bob:Hello Bob, how are you?
+ Bob-->Alice: I am good thanks!`);
mermaidAPI.reset();
conf = diagram.db.getConfig();
diagram.renderer.bounds.init();
});
['tspan', 'fo', 'old', undefined].forEach(function (textPlacement) {
it('should handle one actor, when textPlacement is' + textPlacement, async () => {
- mermaidAPI.initialize(addConf(conf, 'textPlacement', textPlacement));
- diagram.renderer.bounds.init();
const str = `
sequenceDiagram
participant Alice`;
- const diagram1 = await Diagram.fromText(str);
- diagram1.renderer.bounds.init();
- await diagram1.renderer.draw(str, 'tst', '1.2.3', diagram1);
+ const diagram = await Diagram.fromText(str);
+ diagram.renderer.bounds.init();
+ await diagram.renderer.draw(str, 'tst', '1.2.3', diagram);
- const { bounds, models } = diagram1.renderer.bounds.getBounds();
+ const { bounds, models } = diagram.renderer.bounds.getBounds();
expect(bounds.startx).toBe(0);
expect(bounds.starty).toBe(0);
expect(bounds.stopx).toBe(conf.width);