@helpscout/hsds-react
Version:
React component library for Help Scout's Design System
68 lines (57 loc) • 1.99 kB
JavaScript
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;
;