// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import '@testing-library/jest-dom'; import { fireEvent } from '@testing-library/dom'; import React from 'react'; import PopOverItem from '../../../../src/components/ui/PopOver/PopOverItem'; import PopOverSubMenu from '../../../../src/components/ui/PopOver/PopOverSubMenu'; import lightTheme from '../../../../src/theme/light'; import { renderWithTheme } from '../../../test-helpers'; describe('PopOver submenu', () => { it('should render a popover submenu component', () => { const component = ; const { getByText } = renderWithTheme(lightTheme, component); const element = getByText('submenu'); expect(element).toBeInTheDocument(); }); it('should open a submenu of options when clicked', () => { const component = ( Option 1} />} /> ); const { getByText } = renderWithTheme(lightTheme, component); const submenu = getByText('submenu'); fireEvent.click(submenu); const option1 = getByText('Option 1'); expect(option1).toBeInTheDocument(); fireEvent.click(submenu); }); it('should close the new popover when clicked twice', () => { const component = ( Option 1} />} /> ); const { getByText } = renderWithTheme(lightTheme, component); const submenu = getByText('submenu'); fireEvent.click(submenu); const option1 = getByText('Option 1'); fireEvent.click(submenu); expect(option1).not.toBeInTheDocument(); }); it('should render a caret', () => { const component = ; const { getByTestId } = renderWithTheme(lightTheme, component); const caret = getByTestId('submenu-caret'); expect(caret).toBeInTheDocument(); }); });