jsx-test-helpers
Version:
Helpers to easily write tests for React component/JSX code
32 lines (24 loc) • 869 B
JavaScript
import ReactShallowRenderer from "react-test-renderer/shallow";
import reactElementToJSXString from "react-element-to-jsx-string";
export function noop() {}
export const JSX = reactElementToJSXString;
type cbType = (render: Object, renderer: Object) => void;
export const render = (jsx: Object, cb?: cbType | Object, context?: Object) => {
if (typeof cb === "object") {
context = cb;
cb = undefined;
}
const renderer = new ReactShallowRenderer();
const render = renderer.render(jsx, context);
// here you can execute whatever you want on the renderer
// eg: (render) => render.props.onClick({ preventDefault: noop })
if (typeof cb === "function") {
cb(render, renderer);
}
return renderer.getRenderOutput();
};
export const renderJSX = (
jsx: Object,
cb?: cbType | Object,
context?: Object
) => JSX(render(jsx, cb, context));