UNPKG

react-component-override

Version:
36 lines (35 loc) 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("@testing-library/react"); const _1 = require("./"); const TestComponent = (0, _1.overridable)(() => { return (0, jsx_runtime_1.jsx)("span", { children: "Test component" }); }); const OverridenComponent = () => { return (0, jsx_runtime_1.jsx)("span", { children: "Overriden component" }); }; describe('Given overrides are not provided', () => { it('should render original component', () => { const { queryByText } = (0, react_1.render)((0, jsx_runtime_1.jsx)(TestComponent, {})); expect(queryByText('Test component')).toBeTruthy(); }); }); describe('Given overrides are provided', () => { it('should render overriden component', () => { const overrides = (0, _1.createOverrides)([ (0, _1.override)(TestComponent, OverridenComponent) ]); const { queryByText } = (0, react_1.render)((0, jsx_runtime_1.jsx)(_1.OverridesProvider, Object.assign({ overrides: overrides }, { children: (0, jsx_runtime_1.jsx)(TestComponent, {}) }))); expect(queryByText('Overriden component')).toBeTruthy(); expect(queryByText('Test component')).not.toBeTruthy(); }); it('should resolve original component when override is using it', () => { const overrides = (0, _1.createOverrides)([ (0, _1.override)(TestComponent, props => (0, jsx_runtime_1.jsx)(TestComponent, Object.assign({}, props))) ]); const { queryByText } = (0, react_1.render)((0, jsx_runtime_1.jsxs)(_1.OverridesProvider, Object.assign({ overrides: overrides }, { children: [(0, jsx_runtime_1.jsx)("span", { children: "Overriden component" }), (0, jsx_runtime_1.jsx)(TestComponent, {})] }))); expect(queryByText('Test component')).toBeTruthy(); expect(queryByText('Overriden component')).toBeTruthy(); }); });