mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-24 09:49:46 +02:00
Merge pull request #3310 from hrgui/fix/3305-subsequent-diagrams-issue
fix(Diagram): fix persisted data due to db not being cleared before parsing
This commit is contained in:
@@ -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;
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user