diff --git a/admin/src/components/EditCreationFormular.spec.js b/admin/src/components/EditCreationFormular.spec.js index 0fe83cc9a..84d3e26d3 100644 --- a/admin/src/components/EditCreationFormular.spec.js +++ b/admin/src/components/EditCreationFormular.spec.js @@ -7,8 +7,9 @@ const apolloMutateMock = jest.fn().mockResolvedValue({ data: { updatePendingCreation: { creation: [0, 0, 0], + amount: 500, date: new Date(), - memo: 'qwertzuiopasdfghjkl', + memo: 'Test Schöpfung 2', moderator: 0, }, }, @@ -82,196 +83,79 @@ describe('EditCreationFormular', () => { expect(wrapper.findAll('input[type="radio"]').length).toBe(3) }) - describe('with single creation', () => { + it('has the third radio button checked', () => { + expect(wrapper.findAll('input[type="radio"]').at(0).element.checked).toBeFalsy() + expect(wrapper.findAll('input[type="radio"]').at(1).element.checked).toBeFalsy() + expect(wrapper.findAll('input[type="radio"]').at(2).element.checked).toBeTruthy() + }) + + it('has rangeMax of 700', () => { + expect(wrapper.find('input[type="number"]').attributes('max')).toBe('700') + }) + + describe('change and save memo and value with success', () => { beforeEach(async () => { - jest.clearAllMocks() - await wrapper.setProps({ creation: [200, 400, 600] }) - await wrapper.setData({ rangeMin: 180 }) - await wrapper.setData({ text: 'Test create coins' }) - await wrapper.setData({ value: 90 }) + await wrapper.find('input[type="number"]').setValue(500) + await wrapper.find('textarea').setValue('Test Schöpfung 2') + await wrapper.find('.test-submit').trigger('click') }) - describe('first radio button', () => { - beforeEach(async () => { - await wrapper.findAll('input[type="radio"]').at(0).setChecked() - }) - - it('sets rangeMin to 0', () => { - expect(wrapper.vm.rangeMin).toBe(0) - }) - - it('sets rangeMax to 200', () => { - expect(wrapper.vm.rangeMax).toBe(200) - }) - - describe('sendForm', () => { - beforeEach(async () => { - await wrapper.find('.test-submit').trigger('click') - }) - - it('sends ... to apollo', () => { - expect(apolloMutateMock).toBeCalledWith( - expect.objectContaining({ - variables: { - amount: 90, - creationDate: getCreationDate(2), - email: 'bob@baumeister.de', - id: 0, - memo: 'Test create coins', - moderator: 0, - }, - }), - ) - }) - - it('emits update-user-data', () => { - expect(wrapper.emitted('update-user-data')).toBeTruthy() - expect(wrapper.emitted('update-user-data')).toEqual([ - [ - { - id: 0, - email: 'bob@baumeister.de', - }, - [0, 0, 0], - ], - ]) - }) - - it('toast success message', () => { - expect(toastedSuccessMock).toBeCalledWith('creation_form.toasted_update') - }) - - describe('sendForm with error', () => { - beforeEach(async () => { - jest.clearAllMocks() - apolloMutateMock.mockRejectedValue({ - message: 'Ouch!', - }) - wrapper = Wrapper() - await wrapper.setProps({ type: 'singleCreation', creation: [200, 400, 600] }) - await wrapper.setData({ text: 'Test create coins' }) - await wrapper.setData({ value: 90 }) - await wrapper.findAll('input[type="radio"]').at(0).setChecked() - await wrapper.setData({ rangeMin: 100 }) - await wrapper.find('.test-submit').trigger('click') - }) - - it('toast error message', () => { - expect(toastedErrorMock).toBeCalledWith('Ouch!') - }) - }) - }) + it('calls the API', () => { + expect(apolloMutateMock).toBeCalledWith( + expect.objectContaining({ + variables: { + id: 0, + email: 'bob@baumeister.de', + creationDate: getCreationDate(0), + amount: 500, + memo: 'Test Schöpfung 2', + moderator: 0, + }, + }), + ) }) - describe('second radio button', () => { - beforeEach(async () => { - await wrapper.findAll('input[type="radio"]').at(1).setChecked() - }) - - it('sets rangeMin to 0', () => { - expect(wrapper.vm.rangeMin).toBe(0) - }) - - it('sets rangeMax to 400', () => { - expect(wrapper.vm.rangeMax).toBe(400) - }) - - describe('sendForm', () => { - beforeEach(async () => { - await wrapper.find('.test-submit').trigger('click') - }) - - it('sends ... to apollo', () => { - expect(apolloMutateMock).toBeCalledWith( - expect.objectContaining({ - variables: { - amount: 90, - creationDate: getCreationDate(1), - email: 'bob@baumeister.de', - id: 0, - memo: 'Test create coins', - moderator: 0, - }, - }), - ) - }) - - describe('sendForm with error', () => { - beforeEach(async () => { - jest.clearAllMocks() - apolloMutateMock.mockRejectedValue({ - message: 'Ouch!', - }) - wrapper = Wrapper() - await wrapper.setProps({ creation: [200, 400, 600] }) - await wrapper.setData({ text: 'Test create coins' }) - await wrapper.setData({ value: 100 }) - await wrapper.findAll('input[type="radio"]').at(1).setChecked() - await wrapper.setData({ rangeMin: 180 }) - await wrapper.find('.test-submit').trigger('click') - }) - - it('toast error message', () => { - expect(toastedErrorMock).toBeCalledWith('Ouch!') - }) - }) - }) + it('emits update-user-data', () => { + expect(wrapper.emitted('update-user-data')).toEqual([ + [ + { + id: 0, + email: 'bob@baumeister.de', + }, + [0, 0, 0], + ], + ]) }) - describe('third radio button', () => { - beforeEach(async () => { - await wrapper.setData({ rangeMin: 180 }) - await wrapper.findAll('input[type="radio"]').at(2).setChecked() - }) + it('emits update-creation-data', () => { + expect(wrapper.emitted('update-creation-data')).toEqual([ + [ + { + amount: 500, + date: expect.any(Date), + memo: 'Test Schöpfung 2', + moderator: 0, + row: expect.any(Object), + }, + ], + ]) + }) - it('sets rangeMin to 180', () => { - expect(wrapper.vm.rangeMin).toBe(180) - }) + it('toasts a success message', () => { + expect(toastedSuccessMock).toBeCalledWith('creation_form.toasted_update') + }) + }) - it('sets rangeMax to 700', () => { - expect(wrapper.vm.rangeMax).toBe(700) - }) + describe('change and save memo and value with error', () => { + beforeEach(async () => { + apolloMutateMock.mockRejectedValue({ message: 'Oh no!' }) + await wrapper.find('input[type="number"]').setValue(500) + await wrapper.find('textarea').setValue('Test Schöpfung 2') + await wrapper.find('.test-submit').trigger('click') + }) - describe('sendForm with success', () => { - beforeEach(async () => { - await wrapper.find('.test-submit').trigger('click') - }) - - it('sends ... to apollo', () => { - expect(apolloMutateMock).toBeCalledWith( - expect.objectContaining({ - variables: { - amount: 90, - creationDate: getCreationDate(0), - email: 'bob@baumeister.de', - id: 0, - memo: 'Test create coins', - moderator: 0, - }, - }), - ) - }) - }) - - describe('sendForm with error', () => { - beforeEach(async () => { - jest.clearAllMocks() - apolloMutateMock.mockRejectedValue({ - message: 'Ouch!', - }) - wrapper = Wrapper() - await wrapper.setProps({ creation: [200, 400, 600] }) - await wrapper.setData({ text: 'Test create coins' }) - await wrapper.setData({ value: 90 }) - await wrapper.findAll('input[type="radio"]').at(2).setChecked() - await wrapper.setData({ rangeMin: 180 }) - await wrapper.find('.test-submit').trigger('click') - }) - - it('toast error message', () => { - expect(toastedErrorMock).toBeCalledWith('Ouch!') - }) - }) + it('toasts an error message', () => { + expect(toastedErrorMock).toBeCalledWith('Oh no!') }) }) }) diff --git a/admin/src/components/EditCreationFormular.vue b/admin/src/components/EditCreationFormular.vue index fe174a30a..13caa76d2 100644 --- a/admin/src/components/EditCreationFormular.vue +++ b/admin/src/components/EditCreationFormular.vue @@ -4,65 +4,14 @@ - - - - - - - - - - - - - - - + -
@@ -111,7 +60,7 @@ variant="success" class="test-submit" @click="submitCreation" - :disabled="radioSelected === '' || value <= 0 || text.length < 10" + :disabled="selected === '' || value <= 0 || text.length < 10" > {{ $t('creation_form.update_creation') }} @@ -124,8 +73,11 @@