component-test-setup
Version:
Standardized test setup methods for React components in tests.
49 lines (48 loc) • 2.32 kB
JavaScript
;
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);
});
});