/* jshint -W072 */ // Allow several required modules defineDescribe('SequenceDiagram', [ './SequenceDiagram', './Parser', './Generator', './Renderer', './Exporter', 'stubs/SVGTextBlock', ], ( SequenceDiagram, Parser, Generator, Renderer, Exporter, SVGTextBlock ) => { /* 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: '', SVGTextBlockClass: SVGTextBlock, }); }); 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( '