UNPKG

@zohodesk/dot

Version:

In this Library, we Provide Some Basic Components to Build Your Application

151 lines (125 loc) 5.42 kB
"use strict"; var _react = _interopRequireDefault(require("react")); var _react2 = require("@testing-library/react"); require("@testing-library/jest-dom"); var _Subject = _interopRequireDefault(require("../Subject")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } describe('Subject', function () { test('rendering the defult props', function () { var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], null)), asFragment = _render.asFragment; expect(asFragment()).toMatchSnapshot(); }); var whiteSpace = ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']; test.each(whiteSpace)('rendering the whiteSpace of -%s', function (whiteSpace) { var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { whiteSpace: whiteSpace })), asFragment = _render2.asFragment; expect(asFragment()).toMatchSnapshot(); }); test.each(whiteSpace)('rendering the whiteSpace of -%s', function (whiteSpace) { var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { whiteSpace: whiteSpace, isLink: true })), asFragment = _render3.asFragment; expect(asFragment()).toMatchSnapshot(); }); test('renders data attributes on link wrapper', function () { var dataId = 'subject-id'; var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { isLink: true, dataId: dataId })), container = _render4.container; expect(container).toMatchSnapshot(); var anchor = container.querySelector('a'); expect(anchor.getAttribute('data-id')).toBe(dataId); expect(anchor.getAttribute('data-test-id')).toBe(dataId); }); test('renders text content', function () { var text = 'Test Subject'; var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { text: text })), container = _render5.container; expect(container.textContent).toContain(text); }); test('renders with custom className', function () { var customClass = 'custom-subject'; var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { className: customClass })), container = _render6.container; expect(container.querySelector(".".concat(customClass))).not.toBeNull(); }); test('renders dotted text when isDotted is true', function () { var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { text: "Test", isDotted: true })), asFragment = _render7.asFragment; expect(asFragment()).toMatchSnapshot(); }); test('renders children when provided', function () { var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { isLink: true }, /*#__PURE__*/_react["default"].createElement("span", null, "Custom Child"))), container = _render8.container; expect(container.querySelector('span').textContent).toBe('Custom Child'); }); test('applies fontWeight prop', function () { var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { text: "Test", fontWeight: "bold" })), asFragment = _render9.asFragment; expect(asFragment()).toMatchSnapshot(); }); test('renders with href when isLink is true', function () { var href = 'https://example.com'; var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { isLink: true, href: href })), container = _render10.container; expect(container.querySelector('a').getAttribute('href')).toBe(href); }); test('calls onClick when link is clicked', function () { var handleClick = jest.fn(); var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { isLink: true, onClick: handleClick })), container = _render11.container; container.querySelector('a').click(); expect(handleClick).toHaveBeenCalled(); }); test('renders as non-link when isLink is false', function () { var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { text: "Test", isLink: false })), container = _render12.container; expect(container.querySelector('a')).toBeNull(); }); test('applies custom className to non-link element', function () { var customClass = 'test-class'; var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { text: "Test", className: customClass, isLink: false })), container = _render13.container; expect(container.querySelector(".".concat(customClass))).not.toBeNull(); }); test('renders with target prop on link', function () { var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Subject["default"], { isLink: true, target: "_blank" })), container = _render14.container; expect(container.querySelector('a').getAttribute('target')).toBe('_blank'); }); });