diff --git a/UNRELEASED.md b/UNRELEASED.md index 93943b1b53b..7b4f4dd09b0 100644 --- a/UNRELEASED.md +++ b/UNRELEASED.md @@ -80,5 +80,6 @@ Use [the changelog guidelines](https://git.io/polaris-changelog-guidelines) to f - Modernized tests for EmptyState component ([#4427](https://github.com/Shopify/polaris-react/pull/4427)) - Modernized tests for Pagination, FilterControl, FilterCreator, FilterValueSelector, and DateSelector components ([#4438](https://github.com/Shopify/polaris-react/pull/4438)) - Modernized tests for PopoverOverlay component([#4430](https://github.com/Shopify/polaris-react/pull/4430)) +- Modernized tests for Dropzone, ExceptionList, and ConnectedFilterControl > Item components([#4412](https://github.com/Shopify/polaris-react/pull/4412)) ### Deprecations diff --git a/src/components/DropZone/tests/DropZone.test.tsx b/src/components/DropZone/tests/DropZone.test.tsx index 2b7dde55376..e33c96df0db 100755 --- a/src/components/DropZone/tests/DropZone.test.tsx +++ b/src/components/DropZone/tests/DropZone.test.tsx @@ -2,9 +2,8 @@ import React from 'react'; import {act} from 'react-dom/test-utils'; import {clock} from '@shopify/jest-dom-mocks'; import {Label, Labelled, DisplayText, Caption} from 'components'; -// eslint-disable-next-line no-restricted-imports -import {mountWithAppProvider, ReactWrapper} from 'test-utilities/legacy'; import {mountWithApp} from 'test-utilities'; +import type {CustomRoot} from '@shopify/react-testing'; import {DropZone, DropZoneFileType} from '../DropZone'; import {DropZoneContext} from '../context'; @@ -58,22 +57,22 @@ describe('', () => { }); it('calls the onDrop callback when a drop event is fired', () => { - const dropZone = mountWithAppProvider(); - fireEvent({element: dropZone}); + const dropZone = mountWithApp(); + fireEvent({wrapper: dropZone}); expect(spy).toHaveBeenCalledWith(files, files, []); }); it('calls the onDrop callback when a drop event is fired on document twice when a duplicate file is added consecutively', () => { - const dropZone = mountWithAppProvider(); - fireEvent({element: dropZone}); + const dropZone = mountWithApp(); + fireEvent({wrapper: dropZone}); expect(spy).toHaveBeenCalledWith(files, files, []); - fireEvent({element: dropZone, testFiles: duplicateFiles}); + fireEvent({wrapper: dropZone, testFiles: duplicateFiles}); expect(spy).toHaveBeenCalledWith(duplicateFiles, duplicateFiles, []); }); it('calls the onDrop callback with files when a drop event is fired on document', () => { - mountWithAppProvider(); + mountWithApp(); const event = createEvent('drop', files); act(() => { document.dispatchEvent(event); @@ -82,44 +81,44 @@ describe('', () => { }); it('calls the onDrop callback with files, acceptedFiles, and rejectedFiles when it accepts only jpeg', () => { - const dropZone = mountWithAppProvider( + const dropZone = mountWithApp( , ); - fireEvent({element: dropZone}); + fireEvent({wrapper: dropZone}); expect(spy).toHaveBeenCalledWith(files, acceptedFiles, rejectedFiles); }); it('calls the onDropAccepted callback with acceptedFiles when it accepts only jpeg', () => { - const dropZone = mountWithAppProvider( + const dropZone = mountWithApp( , ); - fireEvent({element: dropZone}); + fireEvent({wrapper: dropZone}); expect(spy).toHaveBeenCalledWith(acceptedFiles); }); it('calls the onDropRejected callback with rejectedFiles when it accepts only jpeg', () => { - const dropZone = mountWithAppProvider( + const dropZone = mountWithApp( , ); - fireEvent({element: dropZone}); + fireEvent({wrapper: dropZone}); expect(spy).toHaveBeenCalledWith(rejectedFiles); }); it('calls the onDragEnter callback when a dragenter event is fired', () => { - const dropZone = mountWithAppProvider(); - fireEvent({element: dropZone, eventType: 'dragenter'}); + const dropZone = mountWithApp(); + fireEvent({wrapper: dropZone, eventType: 'dragenter'}); expect(spy).toHaveBeenCalled(); }); it('calls the onDragOver callback when a dragover event is fired', () => { - const dropZone = mountWithAppProvider(); - fireEvent({element: dropZone, eventType: 'dragover'}); + const dropZone = mountWithApp(); + fireEvent({wrapper: dropZone, eventType: 'dragover'}); expect(spy).toHaveBeenCalled(); }); it('calls the onDragLeave callback when a dragleave event is fired', () => { - const dropZone = mountWithAppProvider(); - fireEvent({element: dropZone, eventType: 'dragleave'}); + const dropZone = mountWithApp(); + fireEvent({wrapper: dropZone, eventType: 'dragleave'}); expect(spy).toHaveBeenCalled(); }); @@ -127,15 +126,15 @@ describe('', () => { const customValidator = (file: File) => { return file.type === 'image/jpeg'; }; - const dropZone = mountWithAppProvider( + const dropZone = mountWithApp( , ); - fireEvent({element: dropZone}); + fireEvent({wrapper: dropZone}); expect(spy).toHaveBeenCalledWith(files, acceptedFiles, rejectedFiles); }); it('does not call any callbacks when disabled', () => { - const dropZone = mountWithAppProvider( + const dropZone = mountWithApp( ', () => { onDragOver={spy} />, ); - fireEvent({element: dropZone, spy}); + fireEvent({wrapper: dropZone, spy}); expect(spy).not.toHaveBeenCalled(); - fireEvent({element: dropZone, eventType: 'dragenter', spy}); + fireEvent({wrapper: dropZone, eventType: 'dragenter', spy}); expect(spy).not.toHaveBeenCalled(); - fireEvent({element: dropZone, eventType: 'dragleave', spy}); + fireEvent({wrapper: dropZone, eventType: 'dragleave', spy}); expect(spy).not.toHaveBeenCalled(); - fireEvent({element: dropZone, eventType: 'dragover', spy}); + fireEvent({wrapper: dropZone, eventType: 'dragover', spy}); expect(spy).not.toHaveBeenCalled(); }); it('calls callbacks when not allowed multiple and a replacement file is uploaded', () => { - const dropZone = mountWithAppProvider( + const dropZone = mountWithApp( ', () => { ); // Initial event to populate zone with data (should succeed) - fireEvent({element: dropZone, spy}); + fireEvent({wrapper: dropZone, spy}); expect(spy).toHaveBeenCalledWith(files, acceptedFiles, rejectedFiles); // Attempt to replace the current file - fireEvent({element: dropZone, spy}); + fireEvent({wrapper: dropZone, spy}); expect(spy).toHaveBeenCalledWith(files, acceptedFiles, rejectedFiles); - fireEvent({element: dropZone, eventType: 'dragenter', spy}); + fireEvent({wrapper: dropZone, eventType: 'dragenter', spy}); expect(spy).toHaveBeenCalled(); - fireEvent({element: dropZone, eventType: 'dragleave', spy}); + fireEvent({wrapper: dropZone, eventType: 'dragleave', spy}); expect(spy).toHaveBeenCalled(); - fireEvent({element: dropZone, eventType: 'dragover', spy}); + fireEvent({wrapper: dropZone, eventType: 'dragover', spy}); expect(spy).toHaveBeenCalled(); }); it('renders when `label` is provided', () => { const labelText = 'My DropZone label'; - const dropZone = mountWithAppProvider(); - const labelled = dropZone.find(Labelled); - expect(labelled.prop('label')).toStrictEqual(labelText); + const dropZone = mountWithApp(); + expect(dropZone).toContainReactComponent(Labelled, {label: labelText}); }); it('renders a