jest-fela-bindings
Version:
Abstract Fela bindings for Jest
18 lines • 1.04 kB
JavaScript
import { renderToString } from 'fela-tools';
import { formatCSS, formatHTML } from './utils';
export default function createSnapshotFactory(createElement, renderToMarkup, defaultRenderer, defaultRendererProvider, defaultThemeProvider) {
return function createSnapshot(component) {
var theme = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var renderer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultRenderer;
var RendererProvider = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultRendererProvider;
var ThemeProvider = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : defaultThemeProvider;
// reset renderer to have a clean setup
renderer.clear();
var markup = renderToMarkup(createElement(RendererProvider, {
renderer: renderer
}, createElement(ThemeProvider, {
theme: theme
}, component)));
return "".concat(formatCSS(renderToString(renderer)), "\n\n").concat(formatHTML(markup));
};
}