UNPKG

grommet

Version:

focus on the essential experience

211 lines (169 loc) 5.4 kB
"use strict"; var _react = _interopRequireDefault(require("react")); require("jest-styled-components"); var _reactTestingLibrary = require("react-testing-library"); var _domTestingLibrary = require("dom-testing-library"); var _portal = require("../../../utils/portal"); var _ = require(".."); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('MaskedInput', function () { beforeEach(_portal.createPortal); afterEach(_reactTestingLibrary.cleanup); test('basic', function () { var _render = (0, _reactTestingLibrary.render)(_react.default.createElement(_.MaskedInput, { name: "item" })), container = _render.container; expect(container.firstChild).toMatchSnapshot(); }); test('mask', function (done) { var onChange = jest.fn(); var onFocus = jest.fn(); var _render2 = (0, _reactTestingLibrary.render)(_react.default.createElement(_.MaskedInput, { "data-testid": "test-input", id: "item", name: "item", mask: [{ length: [1, 2], options: ['aa', 'bb'], regexp: /^[ab][ab]$|^[ab]$/ }, { fixed: '!' }, { length: 1, regexp: /^[ab]$/ }], value: "bb!ax", onChange: onChange, onFocus: onFocus })), getByTestId = _render2.getByTestId, container = _render2.container; expect(container.firstChild).toMatchSnapshot(); _reactTestingLibrary.fireEvent.focus(getByTestId('test-input')); setTimeout(function () { (0, _portal.expectPortal)('masked-input-drop__item').toMatchSnapshot(); expect(onChange).not.toBeCalled(); expect(onFocus).toBeCalled(); done(); }, 300); }); test('option via mouse', function (done) { var onChange = jest.fn(); var _render3 = (0, _reactTestingLibrary.render)(_react.default.createElement(_.MaskedInput, { "data-testid": "test-input", plain: true, size: "large", id: "item", name: "item", mask: [{ length: [1, 2], options: ['aa', 'bb'], regexp: /^[ab][ab]$|^[ab]$/ }, { fixed: '!' }], value: "", onChange: onChange })), getByTestId = _render3.getByTestId, container = _render3.container; expect(container.firstChild).toMatchSnapshot(); _reactTestingLibrary.fireEvent.focus(getByTestId('test-input')); setTimeout(function () { (0, _portal.expectPortal)('masked-input-drop__item').toMatchSnapshot(); _reactTestingLibrary.fireEvent.click((0, _domTestingLibrary.getByText)(document, 'aa')); expect(container.firstChild).toMatchSnapshot(); expect(onChange).toBeCalledWith(expect.objectContaining({ target: { value: 'aa!' } })); done(); }, 500); }); test('option via keyboard', function (done) { var onChange = jest.fn(); var _render4 = (0, _reactTestingLibrary.render)(_react.default.createElement(_.MaskedInput, { "data-testid": "test-input", id: "item", name: "item", mask: [{ length: [1, 2], options: ['aa', 'bb'], regexp: /^[ab][ab]$|^[ab]$/ }, { fixed: '!' }], value: "", onChange: onChange })), getByTestId = _render4.getByTestId, container = _render4.container; expect(container.firstChild).toMatchSnapshot(); var input = getByTestId('test-input'); _reactTestingLibrary.fireEvent.focus(input); setTimeout(function () { // pressing enter here nothing will happen _reactTestingLibrary.fireEvent.keyDown(input, { keyCode: 13 }); // enter _reactTestingLibrary.fireEvent.keyDown(input, { keyCode: 40 }); // down _reactTestingLibrary.fireEvent.keyDown(input, { keyCode: 40 }); // down _reactTestingLibrary.fireEvent.keyDown(input, { keyCode: 38 }); // up _reactTestingLibrary.fireEvent.keyDown(input, { keyCode: 13 }); // enter expect(onChange).toBeCalledWith(expect.objectContaining({ target: { value: 'aa!' } })); done(); }, 300); }); test('next and previous without options', function (done) { var onChange = jest.fn(); var _render5 = (0, _reactTestingLibrary.render)(_react.default.createElement(_.MaskedInput, { "data-testid": "test-input", id: "item", name: "item", value: "", mask: [{ length: [1, 2], regexp: /^[ab][ab]$|^[ab]$/ }, { fixed: '!' }], onChange: onChange })), getByTestId = _render5.getByTestId, container = _render5.container; expect(container.firstChild).toMatchSnapshot(); var input = getByTestId('test-input'); _reactTestingLibrary.fireEvent.focus(input); setTimeout(function () { _reactTestingLibrary.fireEvent.keyDown(input, { keyCode: 40 }); _reactTestingLibrary.fireEvent.keyDown(input, { keyCode: 40 }); _reactTestingLibrary.fireEvent.keyDown(input, { keyCode: 38 }); _reactTestingLibrary.fireEvent.keyDown(input, { keyCode: 13 }); // enter expect(onChange).not.toBeCalled(); expect(container.firstChild).toMatchSnapshot(); done(); }, 300); }); });