UNPKG

component-test-setup

Version:

Standardized test setup methods for React components in tests.

49 lines (48 loc) 2.32 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const react_1 = __importDefault(require("react")); const setupEnzyme_1 = require("./setupEnzyme"); const MyComponent = ({ text }) => { return react_1.default.createElement("div", null, text); }; const text = "default"; const overridden = "overridden"; describe("setupEnzyme", () => { it("uses a default prop value when not overridden", async () => { const renderWrapper = setupEnzyme_1.setupEnzyme(MyComponent, { text }); const { wrapper } = renderWrapper(); expect(wrapper.text()).toEqual(text); }); it("uses an overridden prop value when not overridden", async () => { const renderWrapper = setupEnzyme_1.setupEnzyme(MyComponent, { text }); const { wrapper } = renderWrapper({ text: overridden }); expect(wrapper.text()).toEqual(overridden); }); it("updates view with new props when passed", () => { const renderView = setupEnzyme_1.setupEnzyme(MyComponent, { text }); const { wrapper, update } = renderView(); expect(wrapper.text()).toEqual(text); update({ text: overridden }); expect(wrapper.text()).toEqual(overridden); }); describe("enforces that required props that are missing in the initial setup are provided in the render method", () => { it("when props are completely absent", async () => { const renderWrapper = setupEnzyme_1.setupEnzyme(MyComponent); const { wrapper } = renderWrapper({ text }); expect(wrapper.text()).toEqual(text); }); it("when props are incomplete in defaults", async () => { const renderWrapper = setupEnzyme_1.setupEnzyme(MyComponent, { optional: 10 }); const { wrapper } = renderWrapper({ text }); expect(wrapper.text()).toEqual(text); }); }); it("can handle a pure function component", () => { const renderView = setupEnzyme_1.setupEnzyme(({ text }) => react_1.default.createElement("div", null, text)); const { props, wrapper } = renderView({ text }); expect(wrapper.text()).toEqual(props.text); }); });