UNPKG

@enact/ui

Version:

A collection of simplified unstyled cross-platform UI components for Enact

88 lines (87 loc) 4.05 kB
"use strict"; require("@testing-library/jest-dom"); var _react = require("@testing-library/react"); var _userEvent = _interopRequireDefault(require("@testing-library/user-event")); var _Item = _interopRequireDefault(require("../Item")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var tap = function tap(node) { _react.fireEvent.mouseDown(node); _react.fireEvent.mouseUp(node); }; describe('Item', function () { test('should render an item', function () { (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item["default"], { children: "I am an item" })); var actual = _react.screen.getByText('I am an item'); expect(actual).toBeInTheDocument(); }); test('should render a disabled item', function () { (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item["default"], { disabled: true, children: "I am a disabled item" })); var actual = _react.screen.getByText('I am a disabled item'); expect(actual).toHaveAttribute('disabled'); }); test('should render an inline item', function () { (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item["default"], { inline: true, children: "I am an inline item" })); var actual = _react.screen.getByText('I am an inline item'); var expected = 'inline'; expect(actual).toHaveClass(expected); }); describe('events', function () { test('should call onTap when tapped', function () { var handleClick = jest.fn(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item["default"], { onTap: handleClick, children: "I am a normal item" })); var item = _react.screen.getByText('I am a normal item'); tap(item); var expected = 1; expect(handleClick).toHaveBeenCalledTimes(expected); }); test('should not call onTap when tapped and disabled', function () { var handleClick = jest.fn(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item["default"], { disabled: true, onTap: handleClick, children: "I am a disabled item" })); var item = _react.screen.getByText('I am a disabled item'); tap(item); expect(handleClick).not.toHaveBeenCalled(); }); test('should call onClick when clicked', /*#__PURE__*/_asyncToGenerator(function* () { var handleClick = jest.fn(); var user = _userEvent["default"].setup(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item["default"], { onClick: handleClick, children: "I am a normal Item" })); var item = _react.screen.getByText('I am a normal Item'); yield user.click(item); var expected = 1; expect(handleClick).toHaveBeenCalledTimes(expected); })); test('should not call onClick when clicked and disabled', /*#__PURE__*/_asyncToGenerator(function* () { var handleClick = jest.fn(); var user = _userEvent["default"].setup(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item["default"], { disabled: true, onClick: handleClick, children: "I am a disabled Item" })); var item = _react.screen.getByText('I am a disabled Item'); yield user.click(item); expect(handleClick).not.toHaveBeenCalled(); })); }); });