@enact/sandstone
Version:
Large-screen/TV support library for Enact, containing a variety of UI components.
126 lines (125 loc) • 4.23 kB
JavaScript
;
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();
});
});