From b0b246dad1ed8f4f434eb86925a705a12b8b333c Mon Sep 17 00:00:00 2001 From: "alex.saiannyi" Date: Mon, 15 Nov 2021 19:48:08 +0200 Subject: [PATCH] test(component): refactor Button component tests --- packages/big-design/package.json | 2 + .../big-design/src/components/Button/spec.tsx | 91 ++++++++++--------- 2 files changed, 48 insertions(+), 45 deletions(-) diff --git a/packages/big-design/package.json b/packages/big-design/package.json index 61bff6eae..89aaceef2 100644 --- a/packages/big-design/package.json +++ b/packages/big-design/package.json @@ -60,9 +60,11 @@ "@babel/preset-typescript": "^7.15.0", "@bigcommerce/configs": "^0.15.2-alpha.0", "@bigcommerce/pack": "^0.1.1-alpha.0", + "@testing-library/dom": "^8.11.1", "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^12.1.2", "@testing-library/react-hooks": "^7.0.2", + "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.0.2", "@types/node": "^13.1.8", "@types/react": "^17.0.2", diff --git a/packages/big-design/src/components/Button/spec.tsx b/packages/big-design/src/components/Button/spec.tsx index ca5837823..50928c175 100644 --- a/packages/big-design/src/components/Button/spec.tsx +++ b/packages/big-design/src/components/Button/spec.tsx @@ -1,163 +1,163 @@ import { AddIcon } from '@bigcommerce/big-design-icons'; +import { screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import React, { createRef } from 'react'; import 'jest-styled-components'; -import { fireEvent, render } from '@test/utils'; +import { render } from '@test/utils'; import { StyleableButton } from './private'; import { Button } from './index'; test('render default button', () => { - const { container } = render(); + render(); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render disabled button', () => { - const { container } = render(); + render(); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render destructive button', () => { - const { container } = render(); + render(); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render destructive disabled button', () => { - const { container } = render( + render( , ); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render secondary button', () => { - const { container } = render(); + render(); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render secondary disabled button', () => { - const { container } = render( + render( , ); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render secondary destructive button', () => { - const { container } = render( + render( , ); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render secondary destructive disabled button', () => { - const { container } = render( + render( , ); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render subtle button', () => { - const { container } = render(); + render(); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render subtle disabled button', () => { - const { container } = render( + render( , ); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render subtle destructive button', () => { - const { container } = render( + render( , ); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render subtle destructive disabled button', () => { - const { container } = render( + render( , ); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render loading button', () => { - const { container } = render(); + render(); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render icon only button', () => { - const { container } = render(); + render(); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render icon left button', () => { - const { container } = render(); + render(); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render icon right button', () => { - const { container } = render(); + render(); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('render icon left and right button', () => { - const { container } = render( + render( , ); - expect(container.firstChild).toMatchSnapshot(); + expect(screen.getByRole('button')).toMatchSnapshot(); }); test('forwards ref', () => { const ref = createRef(); - const { container } = render(, ); - expect(getAllByTestId('icon-only').length).toBe(1); + expect(screen.getAllByTestId('icon-only')).toHaveLength(1); });