diff --git a/src/components/CriterionContainer/ReviewCriterion.test.jsx b/src/components/CriterionContainer/ReviewCriterion.test.jsx index e8885cc4..2e374115 100644 --- a/src/components/CriterionContainer/ReviewCriterion.test.jsx +++ b/src/components/CriterionContainer/ReviewCriterion.test.jsx @@ -1,7 +1,24 @@ -import { shallow } from '@edx/react-unit-test-utils'; +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import { IntlProvider } from '@edx/frontend-platform/i18n'; import ReviewCriterion from './ReviewCriterion'; +jest.unmock('@openedx/paragon'); +jest.unmock('react'); +jest.unmock('@edx/frontend-platform/i18n'); + +const mockMessages = { + 'frontend-app-ora.RadioCriterion.optionPoints': '{points} points', +}; + +const withIntl = (component) => ( + + {component} + +); + describe('', () => { const criterion = { options: [ @@ -18,17 +35,18 @@ describe('', () => { ], }; - it('renders correctly', () => { - const wrapper = shallow(); - expect(wrapper.snapshot).toMatchSnapshot(); + it('renders options with labels and points', () => { + render(withIntl()); - expect(wrapper.instance.findByType('Form.Label').length).toBe(2); + expect(screen.getByText('Option 1')).toBeInTheDocument(); + expect(screen.getByText('Option 2')).toBeInTheDocument(); + expect(screen.getByText('1 points')).toBeInTheDocument(); + expect(screen.getByText('2 points')).toBeInTheDocument(); }); - it('renders correctly with no options', () => { - const wrapper = shallow(); - expect(wrapper.snapshot).toMatchSnapshot(); + it('renders with no options', () => { + render(withIntl()); - expect(wrapper.instance.findByType('Form.Label').length).toBe(0); + expect(screen.queryByText(/points/)).not.toBeInTheDocument(); }); }); diff --git a/src/components/CriterionContainer/__snapshots__/ReviewCriterion.test.jsx.snap b/src/components/CriterionContainer/__snapshots__/ReviewCriterion.test.jsx.snap deleted file mode 100644 index d1af26a1..00000000 --- a/src/components/CriterionContainer/__snapshots__/ReviewCriterion.test.jsx.snap +++ /dev/null @@ -1,80 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[` renders correctly 1`] = ` - -
-
- - Option 1 - -
-
- - - -
-
-
-
- - Option 2 - -
-
- - - -
-
-
-
-
-`; - -exports[` renders correctly with no options 1`] = ` - -
- -`; diff --git a/src/components/FilePreview/components/FileRenderer/BaseRenderers/PDFRenderer.test.jsx b/src/components/FilePreview/components/FileRenderer/BaseRenderers/PDFRenderer.test.jsx index d2daf081..1227a511 100644 --- a/src/components/FilePreview/components/FileRenderer/BaseRenderers/PDFRenderer.test.jsx +++ b/src/components/FilePreview/components/FileRenderer/BaseRenderers/PDFRenderer.test.jsx @@ -1,67 +1,211 @@ import React from 'react'; -import { shallow } from '@edx/react-unit-test-utils'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import '@testing-library/jest-dom'; import PDFRenderer from './PDFRenderer'; - import { usePDFRendererData } from './pdfHooks'; +/* eslint-disable react/prop-types */ + +jest.unmock('@openedx/paragon'); +jest.unmock('react'); +jest.unmock('@edx/frontend-platform/i18n'); + jest.mock('react-pdf', () => ({ pdfjs: { GlobalWorkerOptions: {} }, - Document: () => 'Document', - Page: () => 'Page', + Document: ({ children, onLoadSuccess, onLoadError }) => ( +
+ {children} +
+ ), + Page: ({ pageNumber, onLoadSuccess }) => ( +
+ Page {pageNumber} +
+ ), })); jest.mock('./pdfHooks', () => ({ usePDFRendererData: jest.fn(), })); -describe('PDF Renderer Component', () => { - const props = { - url: 'some_url.pdf', - onError: jest.fn().mockName('this.props.onError'), - onSuccess: jest.fn().mockName('this.props.onSuccess'), +describe('PDFRenderer', () => { + const defaultProps = { + url: 'test-document.pdf', + onError: jest.fn(), + onSuccess: jest.fn(), }; - const hookProps = { + + const defaultHookReturnValue = { pageNumber: 1, numPages: 10, - relativeHeight: 200, - wrapperRef: { current: 'wrapperRef' }, - onDocumentLoadSuccess: jest.fn().mockName('onDocumentLoadSuccess'), - onLoadPageSuccess: jest.fn().mockName('onLoadPageSuccess'), - onDocumentLoadError: jest.fn().mockName('onDocumentLoadError'), - onInputPageChange: jest.fn().mockName('onInputPageChange'), - onNextPageButtonClick: jest.fn().mockName('onNextPageButtonClick'), - onPrevPageButtonClick: jest.fn().mockName('onPrevPageButtonClick'), + relativeHeight: 400, + wrapperRef: { current: null }, + onDocumentLoadSuccess: jest.fn(), + onLoadPageSuccess: jest.fn(), + onDocumentLoadError: jest.fn(), + onInputPageChange: jest.fn(), + onNextPageButtonClick: jest.fn(), + onPrevPageButtonClick: jest.fn(), hasNext: true, - hasPref: false, + hasPrev: false, }; beforeEach(() => { jest.clearAllMocks(); + usePDFRendererData.mockReturnValue(defaultHookReturnValue); }); - describe('snapshots', () => { - test('first page, prev is disabled', () => { - usePDFRendererData.mockReturnValue(hookProps); - const wrapper = shallow(); - expect(wrapper.snapshot).toMatchSnapshot(); - - const [prevButton, nextButton] = wrapper.instance.findByType('IconButton'); - expect(prevButton.props.disabled).toBe(true); - expect(nextButton.props.disabled).toBe(false); + + describe('navigation controls', () => { + it('disables previous button on first page', () => { + render(); + + const prevButton = screen.getByRole('button', { + name: /previous pdf page/i, + }); + const nextButton = screen.getByRole('button', { name: /next pdf page/i }); + + expect(prevButton).toBeDisabled(); + expect(nextButton).toBeEnabled(); }); - test('on last page, next is disabled', () => { + + it('disables next button on last page', () => { usePDFRendererData.mockReturnValue({ - ...hookProps, - pageNumber: hookProps.numPages, + ...defaultHookReturnValue, + pageNumber: 10, hasNext: false, hasPrev: true, }); - const wrapper = shallow(); - expect(wrapper.snapshot).toMatchSnapshot(); - const [prevButton, nextButton] = wrapper.instance.findByType('IconButton'); - expect(prevButton.props.disabled).toBe(false); - expect(nextButton.props.disabled).toBe(true); + render(); + + const prevButton = screen.getByRole('button', { + name: /previous pdf page/i, + }); + const nextButton = screen.getByRole('button', { name: /next pdf page/i }); + + expect(prevButton).toBeEnabled(); + expect(nextButton).toBeDisabled(); + }); + + it('enables both buttons on middle page', () => { + usePDFRendererData.mockReturnValue({ + ...defaultHookReturnValue, + pageNumber: 5, + hasNext: true, + hasPrev: true, + }); + + render(); + + const prevButton = screen.getByRole('button', { + name: /previous pdf page/i, + }); + const nextButton = screen.getByRole('button', { name: /next pdf page/i }); + + expect(prevButton).toBeEnabled(); + expect(nextButton).toBeEnabled(); + }); + }); + + describe('page number input', () => { + it('displays current page number and total pages', () => { + render(); + + const pageInput = screen.getByRole('spinbutton'); + expect(pageInput).toHaveValue(1); + expect(screen.getByText('of 10')).toBeInTheDocument(); + }); + + it('calls onInputPageChange when page number is changed', async () => { + const user = userEvent.setup(); + const mockOnInputPageChange = jest.fn(); + + usePDFRendererData.mockReturnValue({ + ...defaultHookReturnValue, + onInputPageChange: mockOnInputPageChange, + }); + + render(); + + const pageInput = screen.getByRole('spinbutton'); + await user.clear(pageInput); + await user.type(pageInput, '5'); + + expect(mockOnInputPageChange).toHaveBeenCalled(); + }); + }); + + describe('button interactions', () => { + it('calls onPrevPageButtonClick when previous button is clicked', async () => { + const user = userEvent.setup(); + const mockOnPrevPageButtonClick = jest.fn(); + + usePDFRendererData.mockReturnValue({ + ...defaultHookReturnValue, + pageNumber: 5, + hasPrev: true, + onPrevPageButtonClick: mockOnPrevPageButtonClick, + }); + + render(); + + const prevButton = screen.getByRole('button', { + name: /previous pdf page/i, + }); + await user.click(prevButton); + + expect(mockOnPrevPageButtonClick).toHaveBeenCalledTimes(1); + }); + + it('calls onNextPageButtonClick when next button is clicked', async () => { + const user = userEvent.setup(); + const mockOnNextPageButtonClick = jest.fn(); + + usePDFRendererData.mockReturnValue({ + ...defaultHookReturnValue, + onNextPageButtonClick: mockOnNextPageButtonClick, + }); + + render(); + + const nextButton = screen.getByRole('button', { name: /next pdf page/i }); + await user.click(nextButton); + + expect(mockOnNextPageButtonClick).toHaveBeenCalledTimes(1); + }); + }); + + describe('PDF document rendering', () => { + it('renders PDF document and page', () => { + render(); + + expect( + screen.getByRole('document', { name: 'PDF Document' }), + ).toBeInTheDocument(); + expect( + screen.getByRole('img', { name: 'PDF Page 1' }), + ).toBeInTheDocument(); + expect(screen.getByText('Page 1')).toBeInTheDocument(); + }); + + it('passes hook functions to usePDFRendererData', () => { + render(); + + expect(usePDFRendererData).toHaveBeenCalledWith({ + onError: defaultProps.onError, + onSuccess: defaultProps.onSuccess, + }); }); }); }); diff --git a/src/components/FilePreview/components/FileRenderer/BaseRenderers/__snapshots__/PDFRenderer.test.jsx.snap b/src/components/FilePreview/components/FileRenderer/BaseRenderers/__snapshots__/PDFRenderer.test.jsx.snap deleted file mode 100644 index b84771c8..00000000 --- a/src/components/FilePreview/components/FileRenderer/BaseRenderers/__snapshots__/PDFRenderer.test.jsx.snap +++ /dev/null @@ -1,135 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`PDF Renderer Component snapshots first page, prev is disabled 1`] = ` -
- -
- -
-
- - - - - Page - - - - of - 10 - - - - -
-`; - -exports[`PDF Renderer Component snapshots on last page, next is disabled 1`] = ` -
- -
- -
-
- - - - - Page - - - - of - 10 - - - - -
-`; diff --git a/src/components/FileUpload/ActionCell.test.jsx b/src/components/FileUpload/ActionCell.test.jsx index 52835616..10c7c3bb 100644 --- a/src/components/FileUpload/ActionCell.test.jsx +++ b/src/components/FileUpload/ActionCell.test.jsx @@ -1,17 +1,53 @@ -import { shallow } from '@edx/react-unit-test-utils'; +import { render, screen } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import userEvent from '@testing-library/user-event'; +import { IntlProvider } from '@edx/frontend-platform/i18n'; import { useDeleteFileAction } from 'hooks/actions'; import ActionCell from './ActionCell'; -jest.mock('components/ConfirmDialog', () => 'ConfirmDialog'); +/* eslint-disable react/prop-types */ + +jest.unmock('@openedx/paragon'); +jest.unmock('react'); +jest.unmock('@edx/frontend-platform/i18n'); +jest.unmock('hooks/actions'); jest.mock('hooks/actions', () => ({ useDeleteFileAction: jest.fn(), })); +jest.unmock('components/ConfirmDialog'); +jest.mock( + 'components/ConfirmDialog', + () => ({ + title, description, onConfirm, isOpen, + }) => { + if (!isOpen) { + return null; + } + return ( +
+

{title}

+

{description}

+ +
+ ); + }, +); + +const renderWithIntl = (ui) => render( + + {ui} + , +); + describe('', () => { + const mockOnClick = jest.fn(); const props = { - onDeletedFile: jest.fn().mockName('onDeletedFile'), + onDeletedFile: jest.fn(), disabled: false, row: { original: { @@ -22,27 +58,50 @@ describe('', () => { const deleteFileAction = { action: { - onClick: jest.fn().mockName('onClick'), + onClick: mockOnClick, }, confirmProps: { - abc: 123, + title: 'Delete File', + description: 'Are you sure you want to delete this file?', + onConfirm: jest.fn(), + isOpen: false, }, }; - useDeleteFileAction.mockReturnValue(deleteFileAction); + beforeEach(() => { + jest.clearAllMocks(); + useDeleteFileAction.mockReturnValue(deleteFileAction); + }); + + it('renders nothing when disabled', () => { + const { container } = renderWithIntl(); + expect(container.firstChild).toBeNull(); + }); + + it('renders delete button when enabled', () => { + renderWithIntl(); + + const deleteButton = screen.getByRole('button', { name: /delete/i }); + expect(deleteButton).toBeInTheDocument(); + expect(deleteButton).not.toBeDisabled(); + }); + + it('calls onClick when delete button is clicked', async () => { + const user = userEvent.setup(); + renderWithIntl(); - it('render empty on disabled', () => { - const wrapper = shallow(); - expect(wrapper.snapshot).toMatchSnapshot(); + const deleteButton = screen.getByRole('button', { name: /delete/i }); + await user.click(deleteButton); - expect(wrapper.isEmptyRender()).toBe(true); + expect(mockOnClick).toHaveBeenCalledTimes(1); }); - it('render action cell and confirm dialog', () => { - const wrapper = shallow(); - expect(wrapper.snapshot).toMatchSnapshot(); + it('calls useDeleteFileAction with correct parameters', () => { + renderWithIntl(); - expect(wrapper.instance.findByType('IconButton')).toHaveLength(1); - expect(wrapper.instance.findByType('ConfirmDialog')).toHaveLength(1); + expect(useDeleteFileAction).toHaveBeenCalledWith({ + fileIndex: 1, + onDeletedFile: props.onDeletedFile, + }); }); }); diff --git a/src/components/FileUpload/FileDownload.test.jsx b/src/components/FileUpload/FileDownload.test.jsx index 100d5f02..f766d3a2 100644 --- a/src/components/FileUpload/FileDownload.test.jsx +++ b/src/components/FileUpload/FileDownload.test.jsx @@ -1,19 +1,33 @@ -import { shallow } from '@edx/react-unit-test-utils'; +import { render, screen } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import userEvent from '@testing-library/user-event'; +import { IntlProvider } from '@edx/frontend-platform/i18n'; import FileDownload from './FileDownload'; +import { useFileDownloadHooks } from './hooks'; + +jest.unmock('@openedx/paragon'); +jest.unmock('react'); +jest.unmock('@edx/frontend-platform/i18n'); + jest.mock('react-router', () => ({ useParams: () => ({ xblockId: 'xblockId', }), })); + +const mockDownloadFiles = jest.fn(); jest.mock('./hooks', () => ({ - useFileDownloadHooks: () => ({ - downloadFiles: jest.fn().mockName('downloadFiles'), - status: 'not that it matters', - }), + useFileDownloadHooks: jest.fn(), })); +const renderWithIntl = (ui) => render( + + {ui} + , +); + describe('', () => { const props = { files: [ @@ -25,17 +39,73 @@ describe('', () => { ], }; - it('render empty on no files', () => { - const wrapper = shallow(); - expect(wrapper.snapshot).toMatchSnapshot(); + beforeEach(() => { + jest.clearAllMocks(); + useFileDownloadHooks.mockReturnValue({ + downloadFiles: mockDownloadFiles, + status: 'idle', + }); + }); + + it('renders nothing when no files are provided', () => { + const { container } = renderWithIntl(); + expect(container.firstChild).toBeNull(); + }); + + it('renders download button when files are provided', () => { + renderWithIntl(); + + const downloadButton = screen.getByRole('button', { name: /download files/i }); + expect(downloadButton).toBeInTheDocument(); + expect(downloadButton).not.toBeDisabled(); + }); + + it('calls downloadFiles when button is clicked', async () => { + const user = userEvent.setup(); + renderWithIntl(); + + const downloadButton = screen.getByRole('button', { name: /download files/i }); + await user.click(downloadButton); + + expect(mockDownloadFiles).toHaveBeenCalledTimes(1); + }); + + it('shows loading state when status is loading', () => { + useFileDownloadHooks.mockReturnValue({ + downloadFiles: mockDownloadFiles, + status: 'loading', + }); + + renderWithIntl(); - expect(wrapper.isEmptyRender()).toBe(true); + const downloadButton = screen.getByRole('button', { name: /downloading/i }); + expect(downloadButton).toBeInTheDocument(); + expect(downloadButton).toHaveAttribute('aria-disabled', 'true'); }); - it('render download button', () => { - const wrapper = shallow(); - expect(wrapper.snapshot).toMatchSnapshot(); + it('shows success state when status is success', () => { + useFileDownloadHooks.mockReturnValue({ + downloadFiles: mockDownloadFiles, + status: 'success', + }); + + renderWithIntl(); + + const downloadButton = screen.getByRole('button', { name: /downloaded/i }); + expect(downloadButton).toBeInTheDocument(); + expect(downloadButton).toHaveAttribute('aria-disabled', 'true'); + }); + + it('shows error state when status is error', () => { + useFileDownloadHooks.mockReturnValue({ + downloadFiles: mockDownloadFiles, + status: 'error', + }); + + renderWithIntl(); - expect(wrapper.instance.findByType('StatefulButton')).toHaveLength(1); + const downloadButton = screen.getByRole('button', { name: /retry download/i }); + expect(downloadButton).toBeInTheDocument(); + expect(downloadButton).not.toBeDisabled(); }); }); diff --git a/src/components/FileUpload/UploadConfirmModal.test.jsx b/src/components/FileUpload/UploadConfirmModal.test.jsx index 3cac01dc..34a14bfc 100644 --- a/src/components/FileUpload/UploadConfirmModal.test.jsx +++ b/src/components/FileUpload/UploadConfirmModal.test.jsx @@ -1,14 +1,46 @@ -import { shallow } from '@edx/react-unit-test-utils'; +import { render, screen } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import userEvent from '@testing-library/user-event'; +import { IntlProvider } from '@edx/frontend-platform/i18n'; import { useUploadConfirmModalHooks } from './hooks'; - +import messages from './messages'; import UploadConfirmModal from './UploadConfirmModal'; +jest.unmock('@openedx/paragon'); +jest.unmock('react'); +jest.unmock('@edx/frontend-platform/i18n'); + jest.mock('./hooks', () => ({ useUploadConfirmModalHooks: jest.fn(), })); +const renderWithIntl = (ui) => { + const testMessages = { + 'frontend-app-ora.FileCellContent.uploadFileModalTitle': + messages.uploadFileModalTitle.defaultMessage, + 'frontend-app-ora.FileCellContent.uploadFileDescriptionFieldLabel': + messages.uploadFileDescriptionFieldLabel.defaultMessage, + 'frontend-app-ora.FileCellContent.cancelUploadFileButton': + messages.cancelUploadFileButton.defaultMessage, + 'frontend-app-ora.FileCellContent.confirmUploadFileButton': + messages.confirmUploadFileButton.defaultMessage, + 'frontend-app-ora.FileCellContent.fileDescriptionMissingError': + messages.fileDescriptionMissingError.defaultMessage, + }; + + return render( + + {ui} + , + ); +}; + describe('', () => { + const mockExitHandler = jest.fn(); + const mockConfirmUploadClickHandler = jest.fn(); + const mockOnFileDescriptionChange = jest.fn(); + const props = { open: true, file: { @@ -18,24 +50,104 @@ describe('', () => { uploadHandler: jest.fn(), }; - useUploadConfirmModalHooks.mockReturnValue({ + const mockHooksReturn = { shouldShowError: false, - exitHandler: jest.fn().mockName('exitHandler'), - confirmUploadClickHandler: jest.fn().mockName('confirmUploadClickHandler'), - onFileDescriptionChange: jest.fn().mockName('onFileDescriptionChange'), + exitHandler: mockExitHandler, + confirmUploadClickHandler: mockConfirmUploadClickHandler, + onFileDescriptionChange: mockOnFileDescriptionChange, + }; + + beforeEach(() => { + jest.clearAllMocks(); + useUploadConfirmModalHooks.mockReturnValue(mockHooksReturn); + }); + + it('renders modal with file description form when file is provided', () => { + renderWithIntl(); + + expect(screen.getByRole('dialog')).toBeInTheDocument(); + expect( + screen.getByText(/add a text description to your file/i), + ).toBeInTheDocument(); + expect( + screen.getByLabelText(/description for: file name/i), + ).toBeInTheDocument(); + expect( + screen.getByRole('button', { name: /cancel upload/i }), + ).toBeInTheDocument(); + expect( + screen.getByRole('button', { name: /upload files/i }), + ).toBeInTheDocument(); + }); + + it('renders modal without file description form when no file is provided', () => { + renderWithIntl(); + + expect(screen.getByRole('dialog')).toBeInTheDocument(); + expect( + screen.getByText(/add a text description to your file/i), + ).toBeInTheDocument(); + expect(screen.queryByRole('textbox')).not.toBeInTheDocument(); + expect( + screen.getByRole('button', { name: /cancel upload/i }), + ).toBeInTheDocument(); + expect( + screen.getByRole('button', { name: /upload files/i }), + ).toBeInTheDocument(); }); - it('render upload confirm modal', () => { - const wrapper = shallow(); - expect(wrapper.snapshot).toMatchSnapshot(); + it('calls exitHandler when cancel button is clicked', async () => { + const user = userEvent.setup(); + renderWithIntl(); + + const cancelButton = screen.getByRole('button', { name: /cancel upload/i }); + await user.click(cancelButton); + + expect(mockExitHandler).toHaveBeenCalled(); + }); + + it('calls confirmUploadClickHandler when upload button is clicked', async () => { + const user = userEvent.setup(); + renderWithIntl(); + + const uploadButton = screen.getByRole('button', { name: /upload files/i }); + await user.click(uploadButton); + + expect(mockConfirmUploadClickHandler).toHaveBeenCalledTimes(1); + }); + + it('calls onFileDescriptionChange when input value changes', async () => { + const user = userEvent.setup(); + renderWithIntl(); + + const descriptionInput = screen.getByLabelText( + /description for: file name/i, + ); + await user.type(descriptionInput, 'test description'); + + expect(mockOnFileDescriptionChange).toHaveBeenCalled(); + }); + + it('shows error message when shouldShowError is true', () => { + useUploadConfirmModalHooks.mockReturnValue({ + ...mockHooksReturn, + shouldShowError: true, + }); + + renderWithIntl(); - expect(wrapper.instance.findByType('Form.Group')).toHaveLength(1); + expect( + screen.getByText(/please enter a file description/i), + ).toBeInTheDocument(); + const descriptionInput = screen.getByLabelText( + /description for: file name/i, + ); + expect(descriptionInput).toHaveClass('is-invalid'); }); - it('render upload confirm modal with no file', () => { - const wrapper = shallow(); - expect(wrapper.snapshot).toMatchSnapshot(); + it('does not render modal when open is false', () => { + renderWithIntl(); - expect(wrapper.instance.findByType('Form.Group')).toHaveLength(0); + expect(screen.queryByRole('dialog')).not.toBeInTheDocument(); }); }); diff --git a/src/components/FileUpload/__snapshots__/ActionCell.test.jsx.snap b/src/components/FileUpload/__snapshots__/ActionCell.test.jsx.snap deleted file mode 100644 index 35b6b509..00000000 --- a/src/components/FileUpload/__snapshots__/ActionCell.test.jsx.snap +++ /dev/null @@ -1,17 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[` render action cell and confirm dialog 1`] = ` - - - - -`; - -exports[` render empty on disabled 1`] = `false`; diff --git a/src/components/FileUpload/__snapshots__/FileDownload.test.jsx.snap b/src/components/FileUpload/__snapshots__/FileDownload.test.jsx.snap deleted file mode 100644 index 1d4925d3..00000000 --- a/src/components/FileUpload/__snapshots__/FileDownload.test.jsx.snap +++ /dev/null @@ -1,56 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[` render download button 1`] = ` -, - "idle": , - "loading": , - "success": , - } - } - labels={ - { - "error": , - "idle": , - "loading": , - "success": , - } - } - onClick={[MockFunction downloadFiles]} - state="not that it matters" -/> -`; - -exports[` render empty on no files 1`] = `null`; diff --git a/src/components/FileUpload/__snapshots__/UploadConfirmModal.test.jsx.snap b/src/components/FileUpload/__snapshots__/UploadConfirmModal.test.jsx.snap deleted file mode 100644 index ba6258e4..00000000 --- a/src/components/FileUpload/__snapshots__/UploadConfirmModal.test.jsx.snap +++ /dev/null @@ -1,111 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[` render upload confirm modal 1`] = ` - - - - Add a text description to your file - - - - -
- - - - Description for: - - - file name - - - - -
-
-
- - - - Cancel upload - - - - -
-`; - -exports[` render upload confirm modal with no file 1`] = ` - - - - Add a text description to your file - - - - -
- - - - - - Cancel upload - - - - - -`;