diff --git a/lib/import/Importer.js b/lib/import/Importer.js index 510c2a42..e09761dd 100644 --- a/lib/import/Importer.js +++ b/lib/import/Importer.js @@ -85,6 +85,7 @@ function importBpmnDiagram(diagram, definitions, done) { var canvas = diagram.get('canvas'); var events = diagram.get('eventBus'); + var commandStack = diagram.get('commandStack'); function addLabel(element, di, data) { @@ -167,6 +168,8 @@ function importBpmnDiagram(diagram, definitions, done) { var walker = new BpmnTreeWalker(visitor); walker.handleDefinitions(definitions); + commandStack.clear(); + done(); } diff --git a/test/spec/browser/import/ImporterSpec.js b/test/spec/browser/import/ImporterSpec.js index e6d618e5..62d41d58 100644 --- a/test/spec/browser/import/ImporterSpec.js +++ b/test/spec/browser/import/ImporterSpec.js @@ -76,4 +76,29 @@ describe('import - importer', function() { }); }); + + it('should clear commandStack after import', function(done) { + + // given + var xml = fs.readFileSync('test/fixtures/bpmn/simple.bpmn', 'utf8'); + + var diagram = createDiagram(); + + var commandStack = diagram.get('commandStack'); + + // when + BpmnModel.fromXML(xml, function(err, definitions) { + if (err) { + return done(err); + } + + // when + Importer.importBpmnDiagram(diagram, definitions, function(err) { + expect(commandStack.getStack()).toEqual([]); + + done(err); + }); + }); + }); + }); \ No newline at end of file