From 78100bec3734cd583b2fc60a6afb1c2abf104b1e Mon Sep 17 00:00:00 2001 From: aonomike Date: Sat, 1 Jun 2019 20:23:04 +0300 Subject: [PATCH] Add tests to upload error bug fix Co-authored-by: mattwr18 --- webapp/components/Upload/spec.js | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/webapp/components/Upload/spec.js b/webapp/components/Upload/spec.js index 85215ea59..b81babb6e 100644 --- a/webapp/components/Upload/spec.js +++ b/webapp/components/Upload/spec.js @@ -26,6 +26,7 @@ describe('Upload', () => { success: jest.fn(), error: jest.fn(), }, + $t: jest.fn(), } const propsData = { @@ -34,7 +35,7 @@ describe('Upload', () => { }, } - const file = { + const fileSuccess = { filename: 'avatar.jpg', previewElement: { classList: { @@ -59,13 +60,38 @@ describe('Upload', () => { wrapper = shallowMount(Upload, { localVue, propsData, mocks }) }) + afterEach(() => { + jest.clearAllMocks() + }) + it('sends a the UpdateUser mutation when vddrop is called', () => { wrapper.vm.vddrop([{ filename: 'avatar.jpg' }]) expect(mocks.$apollo.mutate).toHaveBeenCalledTimes(1) }) it('thumbnail', () => { - wrapper.vm.thumbnail(file, dataUrl) - expect(file.previewElement.classList.add).toHaveBeenCalledTimes(1) + wrapper.vm.thumbnail(fileSuccess, dataUrl) + expect(fileSuccess.previewElement.classList.add).toHaveBeenCalledTimes(1) + }) + + describe('error handling', () => { + const message = 'File upload failed' + const fileError = { status: 'error' } + + it('defaults to error false', () => { + expect(wrapper.vm.error).toEqual(false) + }) + + it('shows an error toaster when verror is called', () => { + wrapper.vm.verror(fileError, message) + expect(mocks.$toast.error).toHaveBeenCalledWith(fileError.status, message) + }) + + it('changes error status from false to true to false', () => { + wrapper.vm.verror(fileError, message) + expect(wrapper.vm.error).toEqual(true) + jest.runAllTimers() + expect(wrapper.vm.error).toEqual(false) + }) }) })