UNPKG

@enact/sandstone

Version:

Large-screen/TV support library for Enact, containing a variety of UI components.

126 lines (125 loc) 4.23 kB
"use strict"; require("@testing-library/jest-dom"); var _react = require("@testing-library/react"); var _MediaSlider = _interopRequireDefault(require("../MediaSlider")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var blur = function blur(slider) { return _react.fireEvent.blur(slider); }; var focus = function focus(slider) { return _react.fireEvent.focus(slider); }; var activate = function activate(slider) { return _react.fireEvent.keyUp(slider, { keyCode: 13 }); }; var keyDown = function keyDown(keyCode) { return function (slider) { return _react.fireEvent.keyDown(slider, { keyCode: keyCode }); }; }; var leftKeyDown = keyDown(37); var rightKeyDown = keyDown(39); describe('MediaSlider', function () { beforeEach(function () { global.Element.prototype.getBoundingClientRect = jest.fn(function () { return { width: 1000, height: 100, top: 0, left: 0, bottom: 50, right: 500 }; }); }); test('should forward `onFocus` when focused', function () { var handleFocus = jest.fn(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaSlider["default"], { "data-testid": "mediaslider-id", onFocus: handleFocus })); var slider = _react.screen.getByTestId('mediaslider-id'); focus(slider); expect(handleFocus).toBeCalled(); }); test('should forward `onBlur` when blurred', function () { var handleBlur = jest.fn(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaSlider["default"], { "data-testid": "mediaslider-id", onBlur: handleBlur })); var slider = _react.screen.getByTestId('mediaslider-id'); blur(slider); expect(handleBlur).toBeCalled(); }); test('should forward `onKeyDown` when key pressed', function () { var handleKeyDown = jest.fn(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaSlider["default"], { defaultValue: 0, "data-testid": "mediaslider-id", onKeyDown: handleKeyDown })); var slider = _react.screen.getByTestId('mediaslider-id'); rightKeyDown(slider); leftKeyDown(slider); var expected = 2; expect(handleKeyDown).toBeCalledTimes(expected); }); test('should forward `onKeyUp` when active', function () { var handleKeyUp = jest.fn(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaSlider["default"], { defaultValue: 0, "data-testid": "mediaslider-id", onKeyUp: handleKeyUp })); var slider = _react.screen.getByTestId('mediaslider-id'); activate(slider); expect(handleKeyUp).toBeCalled(); }); test('should forward `onKnobMove` when mouseOver event occurs', function () { var handleKnobMove = jest.fn(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaSlider["default"], { "data-testid": "mediaslider-id", onKnobMove: handleKnobMove })); var slider = _react.screen.getByTestId('mediaslider-id'); _react.fireEvent.mouseOver(slider, { clientX: 10 }); expect(handleKnobMove).toBeCalled(); }); test('should forward `onKnobMove` when mouseMove event occurs', function () { var handleKnobMove = jest.fn(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaSlider["default"], { "data-testid": "mediaslider-id", onKnobMove: handleKnobMove })); var slider = _react.screen.getByTestId('mediaslider-id'); _react.fireEvent.mouseEnter(slider); _react.fireEvent.mouseMove(slider, { clientX: 10 }); expect(handleKnobMove).toBeCalled(); }); test('should forward `onKnobMove` when touchMove event occurs', function () { var handleKnobMove = jest.fn(); (0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaSlider["default"], { "data-testid": "mediaslider-id", onKnobMove: handleKnobMove })); var slider = _react.screen.getByTestId('mediaslider-id'); focus(slider); var touches = [{ clientX: 10 }]; _react.fireEvent.touchMove(slider, { touches: touches }); expect(handleKnobMove).toBeCalled(); }); });