UNPKG

component-test-setup

Version:

Standardized test setup methods for React components in tests.

36 lines (35 loc) 1.38 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupEnzyme = void 0; const react_1 = __importDefault(require("react")); /** * Creates a `renderWrapper` function that can be used in unit tests to mount a component. * * @param Component - React component to be rendered. * @param baseProps - Any default props to pass to the component in all tests. * @example * ```tsx * const renderWrapper = setupEnzyme(ButtonWithText, { onClick: jest.fn() }) * * const text = 'Hooray!'; * const { props: { onClick }, wrapper } = renderWrapper({ text }); * * wrapper.find('button').simulate('click'); * * expect(onClick).toHaveBeenCalledWith(text); * ``` */ function setupEnzyme(Component, baseProps) { const { mount } = require("enzyme"); return function renderWrapper(testProps) { const props = Object.assign(Object.assign({}, baseProps), testProps); const wrapper = mount(react_1.default.createElement(Component, Object.assign({}, props))); // setProps demands _something_ be passed, so we keep that going, too const update = (updatedProps) => wrapper.setProps(updatedProps); return { props, wrapper, update }; }; } exports.setupEnzyme = setupEnzyme;