UNPKG

@helpscout/hsds-react

Version:

React component library for Help Scout's Design System

68 lines (57 loc) 1.99 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.baseComponentTest = void 0; var _react = _interopRequireDefault(require("react")); var _enzyme = require("enzyme"); var _jsxRuntime = require("react/jsx-runtime"); /* istanbul ignore file */ var baseComponentOptions = { className: '', skipChildrenTest: false }; var baseComponentTest = function baseComponentTest(Component, options) { if (options === void 0) { options = baseComponentOptions; } describe('ClassName', function () { test('Has default className', function () { var wrapper = (0, _enzyme.mount)( /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {})); expect(wrapper.hasClass(options.className)).toBeTruthy(); wrapper.unmount(); }); test('Applies custom className if specified', function () { var customClass = 'piano-key-neck-tie'; var wrapper = (0, _enzyme.mount)( /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, { className: customClass })); expect(wrapper.hasClass(customClass)).toBeTruthy(); wrapper.unmount(); }); }); if (!options.skipChildrenTest) { describe('Children', function () { test('Renders child content', function () { var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: "child", children: "Hello" }) })); var el = wrapper.find('div.child'); expect(el.text()).toContain('Hello'); }); }); } describe('Style', function () { test('Can accept custom styles', function () { var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, { style: { padding: 200 } })); expect(wrapper.props().style.padding).toBe(200); }); }); }; exports.baseComponentTest = baseComponentTest;