/* jshint -W072 */ // Allow several required modules defineDescribe('SequenceDiagram', [ './SequenceDiagram', './Parser', './Generator', './Renderer', './Exporter', 'stubs/TestDOM', ], ( SequenceDiagram, Parser, Generator, Renderer, Exporter, TestDOM ) => { /* jshint +W072 */ 'use strict'; function getSimplifiedContent(d) { return (d.dom().outerHTML .replace(/<\/g>/g, '') .replace(/<\/defs>/g, '') .replace(' xmlns="http://www.w3.org/2000/svg" version="1.1"', '') ); } let diagram = null; beforeEach(() => { diagram = new SequenceDiagram({ namespace: '', textSizerFactory: TestDOM.textSizerFactory, }); }); it('contains references to core objects', () => { expect(SequenceDiagram.Parser).toBe(Parser); expect(SequenceDiagram.Generator).toBe(Generator); expect(SequenceDiagram.Renderer).toBe(Renderer); expect(SequenceDiagram.Exporter).toBe(Exporter); }); it('provides default themes', () => { expect(SequenceDiagram.themes.length).toBeGreaterThan(1); }); it('renders empty diagrams without error', () => { diagram.set(''); expect(getSimplifiedContent(diagram)).toEqual( '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' ); }); it('renders simple metadata', () => { diagram.set('title My title here'); expect(getSimplifiedContent(diagram)).toEqual( '' + 'title My title here' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + 'My title here' + '' + '' ); }); it('renders simple components', () => { diagram.set('A -> B'); const content = getSimplifiedContent(diagram); expect(content).toContain( '' ); // Agent 1 expect(content).toContain( ' { diagram.set('if\nA -> B\nend'); diagram.setCollapsed(0, true); const content = getSimplifiedContent(diagram); expect(content).toContain(''); expect(content).toContain( '