Skip to content

Commit

Permalink
Merge pull request #3310 from hrgui/fix/3305-subsequent-diagrams-issue
Browse files Browse the repository at this point in the history
fix(Diagram): fix persisted data due to db not being cleared before parsing
  • Loading branch information
knsv committed Aug 11, 2022
2 parents 2cc88df + 6e5eeb7 commit cb4b60e
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/Diagram.js
Expand Up @@ -18,6 +18,8 @@ class Diagram {
// console.log('this.type', this.type, diagrams[this.type]);
// Setup diagram
this.db = diagrams[this.type].db;
this.db.clear?.();

this.renderer = diagrams[this.type].renderer;
this.parser = diagrams[this.type].parser;
this.parser.parser.yy = this.db;
Expand Down
75 changes: 75 additions & 0 deletions src/diagrams/sequence/sequenceDiagram.spec.js
Expand Up @@ -22,6 +22,81 @@ function addConf(conf, key, value) {
// const parser = sequence.parser;
let diagram;

describe('more than one sequence diagram', () => {
it('should not have duplicated messages', () => {
const diagram1 = new Diagram(`
sequenceDiagram
Alice->Bob:Hello Bob, how are you?
Bob-->Alice: I am good thanks!`);
expect(diagram1.db.getMessages()).toMatchInlineSnapshot(`
Array [
Object {
"from": "Alice",
"message": "Hello Bob, how are you?",
"to": "Bob",
"type": 5,
"wrap": false,
},
Object {
"from": "Bob",
"message": "I am good thanks!",
"to": "Alice",
"type": 6,
"wrap": false,
},
]
`);
const diagram2 = new Diagram(`
sequenceDiagram
Alice->Bob:Hello Bob, how are you?
Bob-->Alice: I am good thanks!`);

expect(diagram2.db.getMessages()).toMatchInlineSnapshot(`
Array [
Object {
"from": "Alice",
"message": "Hello Bob, how are you?",
"to": "Bob",
"type": 5,
"wrap": false,
},
Object {
"from": "Bob",
"message": "I am good thanks!",
"to": "Alice",
"type": 6,
"wrap": false,
},
]
`);

// Add John actor
const diagram3 = new Diagram(`
sequenceDiagram
Alice->John:Hello John, how are you?
John-->Alice: I am good thanks!`);

expect(diagram3.db.getMessages()).toMatchInlineSnapshot(`
Array [
Object {
"from": "Alice",
"message": "Hello John, how are you?",
"to": "John",
"type": 5,
"wrap": false,
},
Object {
"from": "John",
"message": "I am good thanks!",
"to": "Alice",
"type": 6,
"wrap": false,
},
]
`);
});
});

describe('when parsing a sequenceDiagram', function () {
beforeEach(function () {
// diagram.db = sequenceDb;
Expand Down

0 comments on commit cb4b60e

Please sign in to comment.