/* jshint -W072 */ defineDescribe('Sequence Integration', [ './Parser', './Generator', './Renderer', './themes/Basic', 'stubs/SVGTextBlock', ], ( Parser, Generator, Renderer, Theme, SVGTextBlock ) => { 'use strict'; let parser = null; let generator = null; let renderer = null; let theme = null; beforeEach(() => { theme = new Theme(); parser = new Parser(); generator = new Generator(); renderer = new Renderer(theme, {SVGTextBlockClass: SVGTextBlock}); document.body.appendChild(renderer.svg()); }); afterEach(() => { document.body.removeChild(renderer.svg()); }); function getSimplifiedContent(r) { return (r.svg().outerHTML .replace(/<\/g>/g, '') .replace(' xmlns="http://www.w3.org/2000/svg" version="1.1"', '') ); } it('Renders empty diagrams without error', () => { const parsed = parser.parse(''); const sequence = generator.generate(parsed); renderer.render(sequence); expect(getSimplifiedContent(renderer)).toEqual( '' + '' ); }); it('Renders simple metadata', () => { const parsed = parser.parse('title My title here'); const sequence = generator.generate(parsed); renderer.render(sequence); expect(getSimplifiedContent(renderer)).toEqual( '' + 'My title here' + '' ); }); it('Renders simple components', () => { const parsed = parser.parse('A -> B'); const sequence = generator.generate(parsed); renderer.render(sequence); const content = getSimplifiedContent(renderer); expect(content).toContain( '' ); // Agent 1 expect(content).toContain( ' response.text()) .then(findSamples) .then((samples) => samples.forEach((code, i) => { it('Renders readme example #' + (i + 1) + ' without error', () => { const parsed = parser.parse(code); const sequence = generator.generate(parsed); expect(() => renderer.render(sequence)).not.toThrow(); }); })) ); });