@zohodesk/dot
Version:
In this Library, we Provide Some Basic Components to Build Your Application
151 lines (125 loc) • 5.42 kB
JavaScript
;
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');
});
});