diff --git a/packages/dnb-eufemia/src/components/upload/__tests__/Upload.test.tsx b/packages/dnb-eufemia/src/components/upload/__tests__/Upload.test.tsx index 2cb5e8050e8..38798a4c7c4 100644 --- a/packages/dnb-eufemia/src/components/upload/__tests__/Upload.test.tsx +++ b/packages/dnb-eufemia/src/components/upload/__tests__/Upload.test.tsx @@ -556,6 +556,52 @@ describe('Upload', () => { ).toEqual(expect.arrayContaining(['dnb-upload__file-cell--highlight'])) }) + it('will return error when dropping a file with extension that is not accepted', async () => { + const id = 'not-supported-extension' + + renderHook(useUpload, { initialProps: id }) + + render( + + ) + + const getRootElement = () => document.querySelector('.dnb-upload') + + const element = getRootElement() + const file1 = createMockFile('fileName-1.png', 100, 'image/png') + + await waitFor(() => + fireEvent.drop(element, { + dataTransfer: { files: [file1] }, + }) + ) + + expect(screen.queryByText(nb.errorUnsupportedFile)).toBeInTheDocument() + }) + + it('will return error when dropping a file without extension', async () => { + const id = 'no-extension' + + renderHook(useUpload, { initialProps: id }) + + render( + + ) + + const getRootElement = () => document.querySelector('.dnb-upload') + + const element = getRootElement() + const file1 = createMockFile('fileName-1', 100, '') + + await waitFor(() => + fireEvent.drop(element, { + dataTransfer: { files: [file1] }, + }) + ) + + expect(screen.queryByText(nb.errorUnsupportedFile)).toBeInTheDocument() + }) + describe('useUpload', () => { it('calls uses the useUpload hook to store files', async () => { const validationFunction = jest.fn() diff --git a/packages/dnb-eufemia/src/components/upload/__tests__/UploadVerify.test.tsx b/packages/dnb-eufemia/src/components/upload/__tests__/UploadVerify.test.tsx index 3da2b0d644e..3738c7d8296 100644 --- a/packages/dnb-eufemia/src/components/upload/__tests__/UploadVerify.test.tsx +++ b/packages/dnb-eufemia/src/components/upload/__tests__/UploadVerify.test.tsx @@ -146,6 +146,24 @@ describe('verifyFiles', () => { }) }) + it('returns error message when uploading a file without a file extension', () => { + const file1 = createMockFile('fileName1', 100, '') + + const rawFiles = [{ file: file1 }] + const acceptedFileTypes = ['png'] + + const files = verifyFiles(rawFiles, { + acceptedFileTypes: acceptedFileTypes, + errorUnsupportedFile: 'error unsupported file', + errorLargeFile: 'error 2', + }) + + expect(files[0]).toEqual({ + file: file1, + errorMessage: 'error unsupported file', + }) + }) + describe('when providing max size to file type', () => { it('returns file size error', () => { const file1 = createMockFile('fileName1.png', 100000000, 'image/png')