From b9864946a16697003fc2a790fe6de6fd030fa4b6 Mon Sep 17 00:00:00 2001 From: Felipe Brito Date: Sun, 17 Sep 2023 13:44:28 -0300 Subject: [PATCH] fix(file-uploader): update initial state of existing files Existing files were receiving 'undefined' as state values as the name of the state field used to assign the state value was incorrect (initialState). This commit fix it --- .../CvFileUploader/CvFileUploader.vue | 2 +- .../__tests__/CvFileUploader.spec.js | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/components/CvFileUploader/CvFileUploader.vue b/src/components/CvFileUploader/CvFileUploader.vue index 33177b1c8..38085e332 100644 --- a/src/components/CvFileUploader/CvFileUploader.vue +++ b/src/components/CvFileUploader/CvFileUploader.vue @@ -179,7 +179,7 @@ function addFiles(files) { const newFile = createInternalFile(internalFile?.file || file); if (internalFile) { - internalFile.state = newFile.initialState; + internalFile.state = newFile.state; internalFile.invalidMessageTitle = newFile.invalidMessageTitle; internalFile.invalidMessage = newFile.invalidMessage; } else { diff --git a/src/components/CvFileUploader/__tests__/CvFileUploader.spec.js b/src/components/CvFileUploader/__tests__/CvFileUploader.spec.js index f5811b4ee..c8409a9c8 100644 --- a/src/components/CvFileUploader/__tests__/CvFileUploader.spec.js +++ b/src/components/CvFileUploader/__tests__/CvFileUploader.spec.js @@ -382,6 +382,32 @@ describe('CvFileUploader', () => { expect(emitResult[0][0].state).toBe(STATES.NONE); }); + it(`sets "${STATES.UPLOADING}" state to files when initialStateUploading is set and uploaded file already exists`, async () => { + const dummyFile = new File([''], 'dummy-file.jpeg', { + type: 'image/jpeg', + }); + const dummyId = 'dummy-id'; + const { container, emitted, rerender } = render(CvFileUploader, { + props: { + initialStateUploading: true, + id: dummyId, + }, + }); + + const fileInput = container.querySelector(`#${dummyId}`); + await fireEvent.change(fileInput, { target: { files: [dummyFile] } }); + + await rerender({ initialStateUploading: false }); + await fireEvent.change(fileInput, { target: { files: [dummyFile] } }); + + await rerender({ initialStateUploading: true }); + await fireEvent.change(fileInput, { target: { files: [dummyFile] } }); + + expect(emitted('update:modelValue').at(2)[0][0].state).toBe( + STATES.UPLOADING + ); + }); + describe('Drop target label', () => { it.each(inputKinds)( 'renders drop target label when dropTargetLabel is passed (kind: %s)',