From f0ca35fd92594e8c36ec132d73e5b0d90a1b472d Mon Sep 17 00:00:00 2001 From: Alison Joseph Date: Thu, 16 Feb 2023 10:17:53 -0600 Subject: [PATCH 1/3] test(TableToolbarMenu): update tests to RTL --- .../__tests__/TableToolbarMenu-test.js | 75 +++--- .../TableToolbarMenu-test.js.snap | 234 ++++-------------- 2 files changed, 92 insertions(+), 217 deletions(-) diff --git a/packages/react/src/components/DataTable/__tests__/TableToolbarMenu-test.js b/packages/react/src/components/DataTable/__tests__/TableToolbarMenu-test.js index ef23bc64c8ef..653ae8e91242 100644 --- a/packages/react/src/components/DataTable/__tests__/TableToolbarMenu-test.js +++ b/packages/react/src/components/DataTable/__tests__/TableToolbarMenu-test.js @@ -1,40 +1,57 @@ /** - * Copyright IBM Corp. 2016, 2018 + * Copyright IBM Corp. 2016, 2023 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ import React from 'react'; -import { mount } from 'enzyme'; +import TableToolbarMenu from '../TableToolbarMenu'; import { Download } from '@carbon/icons-react'; -import { TableToolbarMenu } from '..'; - -describe('DataTable.TableToolbarMenu', () => { - it('should render', () => { - const wrapper = mount( - - test - - ); - expect(wrapper).toMatchSnapshot(); - }); -}); +import { render, screen } from '@testing-library/react'; + +describe('TableToolbarMenu', () => { + describe('renders as expected - Component API', () => { + it('should render', () => { + const { container } = render( + + test + + ); + + expect(container).toMatchSnapshot(); + }); + + it('should support a custom `className` prop on the outermost element', () => { + render( + + test + + ); + expect(screen.getByRole('button')).toHaveClass('custom-class'); + }); + + it('should respect iconDescription prop', () => { + render( + + test + + ); + + expect(screen.getByText('Icon description')).toBeInTheDocument(); + }); + + it('should respect renderIcon prop', () => { + render( + + test + + ); -describe('Custom icon in DataTable.TableToolbarMenu', () => { - it('should render', () => { - const iconAction = mount( - - test - - ); - const originalIcon = mount().find('svg'); - const icon = iconAction.find('svg'); - expect(icon.getDOMNode().querySelectorAll(':not(svg):not(title)')).toEqual( - originalIcon.getDOMNode().querySelectorAll(':not(svg):not(title)') - ); + expect(screen.getByRole('img')).toHaveAttribute('aria-label', 'Download'); + }); }); }); diff --git a/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap b/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap index b0ba7b80a255..477e5b47f1e6 100644 --- a/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap +++ b/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap @@ -1,197 +1,55 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`DataTable.TableToolbarMenu should render 1`] = ` - - + - - - - - + + + + + `; From ba70992073d8df6d37ad87c1d2f94e92cf03b87d Mon Sep 17 00:00:00 2001 From: Alison Joseph Date: Thu, 23 Feb 2023 10:18:03 -0600 Subject: [PATCH 2/3] Update TableToolbarMenu-test.js.snap --- .../__tests__/__snapshots__/TableToolbarMenu-test.js.snap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap b/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap index 477e5b47f1e6..f868d3499074 100644 --- a/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap +++ b/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap @@ -52,4 +52,4 @@ exports[`TableToolbarMenu renders as expected - Component API should render 1`] -`; +`; From a2a46fd3a36ec30ce1124c28aa29902f1236bad0 Mon Sep 17 00:00:00 2001 From: Alison Joseph Date: Thu, 23 Feb 2023 10:30:01 -0600 Subject: [PATCH 3/3] chore: fix merge conflicts --- .../__tests__/__snapshots__/TableToolbarMenu-test.js.snap | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap b/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap index b075dbe6cc56..b8b4c701697e 100644 --- a/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap +++ b/packages/react/src/components/DataTable/__tests__/__snapshots__/TableToolbarMenu-test.js.snap @@ -13,7 +13,6 @@ exports[`TableToolbarMenu renders as expected - Component API should render 1`] aria-haspopup="true" aria-labelledby="tooltip-2" class="cds--btn--icon-only custom-class cds--toolbar-action cds--overflow-menu cds--overflow-menu cds--overflow-menu--md cds--btn cds--btn--md cds--btn--primary" - tabindex="0" title="Add" type="button" > @@ -52,4 +51,4 @@ exports[`TableToolbarMenu renders as expected - Component API should render 1`] -`; \ No newline at end of file +`;