@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
text/typescript
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>`);
});
});