UNPKG

@k9n/scully-plugin-mermaid

Version:

this plugin for Scully provides a postRenderer to generate a SVGs from mermaid source code sections

50 lines (43 loc) 1.34 kB
import { HandledRoute, setPluginConfig } from '@scullyio/scully'; import { getMermaidPlugin } from './scully-plugin-mermaid'; import { MermaidPluginConfig } from './interfaces'; import { mermaidPlugin, getSvg } from './mermaid'; describe('mermaidPlugin', () => { let defaultHtml: string; let defaultMermaidChart: string; let mermaidConfig: MermaidPluginConfig; let defaultRouteDataConfig: HandledRoute; let MermaidPlugin: any; beforeEach(() => { defaultHtml = `<html><head></head><body>PLACEHOLDER</body></html>`; defaultMermaidChart = ` pie "Dogs" : 386 "Cats" : 85 "Rats" : 15 `; defaultRouteDataConfig = { route: 'foo', }; mermaidConfig = {}; MermaidPlugin = getMermaidPlugin(); const getSvgMock = jest.fn(getSvg); getSvgMock.mockReturnValue(Promise.resolve('<svg></svg>')); }); afterEach(() => { MermaidPlugin = undefined; }); it('should not render anything when default selector does not match', async () => { const testHtml = defaultHtml.replace( 'PLACEHOLDER', `<pre><code>${defaultMermaidChart}</code></pre>` ); const html = await mermaidPlugin(testHtml, defaultRouteDataConfig); expect(html).toEqual(`<html><head></head><body><pre><code> pie "Dogs" : 386 "Cats" : 85 "Rats" : 15 </code></pre></body></html>`); }); });