| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import React from 'react'; |
| import {render} from '@testing-library/react'; |
| import userEvent from '@testing-library/user-event'; |
| import {screen} from '@testing-library/dom'; |
| import {assert} from 'chai'; |
| |
| import SelectMenu from './SelectMenu.tsx'; |
| |
| describe('SelectMenu', () => { |
| let container: React.RenderResult; |
| |
| beforeEach(() => { |
| container = render(<SelectMenu optionsList = {['op1', 'op2']} />).container; |
| }); |
| |
| it('renders', () => { |
| const form = container.querySelector('form'); |
| assert.isNotNull(form) |
| }); |
| |
| it('renders options on click', async () => { |
| const input = document.getElementById('outlined-select-category'); |
| if (!input) { |
| throw new Error('Input is undefined'); |
| } |
| |
| userEvent.click(input) |
| |
| // 14 is the current number of options in the select menu |
| const count = (await screen.findAllByTestId('select-menu-item')).length; |
| |
| assert.equal(count, 2); |
| }); |
| }); |