UNPKG

decentraland-ui

Version:

Decentraland's UI components and styles

139 lines (138 loc) 5.31 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = __importDefault(require("react")); var react_2 = require("@testing-library/react"); var ArrayFilter_1 = require("./ArrayFilter"); function renderArrayFilter(props) { if (props === void 0) { props = {}; } return (0, react_2.render)(react_1.default.createElement(ArrayFilter_1.ArrayFilter, __assign({ values: [], options: [], onChange: jest.fn() }, props))); } var renderedComponent; describe('when rendering the component without a name', function () { beforeEach(function () { renderedComponent = renderArrayFilter(); }); it("should not the component's header", function () { var queryByTestId = renderedComponent.queryByTestId; expect(queryByTestId('array-filter-header')).not.toBeInTheDocument(); }); }); describe('when rendering the component with a name', function () { var name; beforeEach(function () { name = 'a name'; renderedComponent = renderArrayFilter({ name: name }); }); it("should show the component's header with the provided name", function () { var getByTestId = renderedComponent.getByTestId; var header = getByTestId('array-filter-header'); expect(header).toBeInTheDocument(); expect(header).toHaveTextContent(name); }); }); describe('when clicking on non-selected options', function () { var preSelectedOptions; var options; var onChangeMock; beforeEach(function () { onChangeMock = jest.fn(); options = [ { text: 'Mainnet', value: 'mainnet' }, { text: 'Rinkeby', value: 'rinkeby' }, { text: 'Mumbai', value: 'mumbai' } ]; preSelectedOptions = ['mainnet', 'rinkeby']; renderedComponent = renderArrayFilter({ options: options, values: preSelectedOptions, onChange: onChangeMock }); }); it('should call onChange callback with the added selected option', function () { react_2.fireEvent.click(renderedComponent.getByText('Mumbai')); expect(onChangeMock).toHaveBeenCalledWith(['mainnet', 'rinkeby', 'mumbai']); }); }); describe('when clicking on a selected option', function () { var preSelectedOptions; var options; var onChangeMock; beforeEach(function () { onChangeMock = jest.fn(); options = [ { text: 'Mainnet', value: 'mainnet' }, { text: 'Rinkeby', value: 'rinkeby' }, { text: 'Mumbai', value: 'mumbai' } ]; preSelectedOptions = ['mainnet', 'rinkeby']; renderedComponent = renderArrayFilter({ options: options, values: preSelectedOptions, onChange: onChangeMock }); }); it('should call onChange callback with the removed selected option', function () { react_2.fireEvent.click(renderedComponent.getByText('Rinkeby')); expect(onChangeMock).toHaveBeenCalledWith(['mainnet']); }); }); describe('when down pressing a key on non-selected options', function () { var preSelectedOptions; var options; var onChangeMock; beforeEach(function () { onChangeMock = jest.fn(); options = [ { text: 'Mainnet', value: 'mainnet' }, { text: 'Rinkeby', value: 'rinkeby' }, { text: 'Mumbai', value: 'mumbai' } ]; preSelectedOptions = ['mainnet', 'rinkeby']; renderedComponent = renderArrayFilter({ options: options, values: preSelectedOptions, onChange: onChangeMock }); }); it('should call onChange callback with the added selected option', function () { react_2.fireEvent.keyDown(renderedComponent.getByText('Mumbai'), { key: 'Enter' }); expect(onChangeMock).toHaveBeenCalledWith(['mainnet', 'rinkeby', 'mumbai']); }); }); describe('when down pressing a key on a selected option', function () { var preSelectedOptions; var options; var onChangeMock; beforeEach(function () { onChangeMock = jest.fn(); options = [ { text: 'Mainnet', value: 'mainnet' }, { text: 'Rinkeby', value: 'rinkeby' }, { text: 'Mumbai', value: 'mumbai' } ]; preSelectedOptions = ['mainnet', 'rinkeby']; renderedComponent = renderArrayFilter({ options: options, values: preSelectedOptions, onChange: onChangeMock }); }); it('should call onChange callback with the removed selected option', function () { react_2.fireEvent.keyDown(renderedComponent.getByText('Rinkeby'), { key: 'Enter' }); expect(onChangeMock).toHaveBeenCalledWith(['mainnet']); }); });