diff --git a/admin/src/components/ConfirmRegisterMailFormular.spec.js b/admin/src/components/ConfirmRegisterMailFormular.spec.js new file mode 100644 index 000000000..8872128e9 --- /dev/null +++ b/admin/src/components/ConfirmRegisterMailFormular.spec.js @@ -0,0 +1,75 @@ +import { mount } from '@vue/test-utils' +import ConfirmRegisterMailFormular from './ConfirmRegisterMailFormular.vue' + +const localVue = global.localVue + +const apolloMutateMock = jest.fn().mockResolvedValue() +const toastSuccessMock = jest.fn() +const toastErrorMock = jest.fn() + +const mocks = { + $apollo: { + mutate: apolloMutateMock, + }, + $toasted: { + success: toastSuccessMock, + error: toastErrorMock, + }, +} + +const propsData = { + email: 'bob@baumeister.de', + dateLastSend: '', +} + +describe('ConfirmRegisterMailFormular', () => { + let wrapper + + const Wrapper = () => { + return mount(ConfirmRegisterMailFormular, { localVue, mocks, propsData }) + } + + describe('mount', () => { + beforeEach(() => { + wrapper = Wrapper() + }) + + it('has a DIV element with the class.component-confirm-register-mail', () => { + expect(wrapper.find('.component-confirm-register-mail').exists()).toBeTruthy() + }) + + describe('send register mail with success', () => { + beforeEach(() => { + wrapper.find('button.test-button').trigger('click') + }) + + it('calls the API with email', () => { + expect(apolloMutateMock).toBeCalledWith( + expect.objectContaining({ + variables: { email: 'bob@baumeister.de' }, + }), + ) + }) + + it('toasts a success message', () => { + expect(toastSuccessMock).toBeCalledWith( + 'Erfolgreich senden der Confirmation Link an die E-Mail des Users! bob@baumeister.de', + ) + }) + }) + + describe('send register mail with error', () => { + beforeEach(() => { + apolloMutateMock.mockRejectedValue({ message: 'OUCH!' }) + wrapper = Wrapper() + wrapper.find('button.test-button').trigger('click') + }) + + it('toasts an error message', () => { + expect(toastErrorMock).toBeCalledWith( + 'Fehler beim senden des confirmation link an den Benutzer: OUCH!', + ) + }) + }) + }) +}) diff --git a/admin/src/components/ConfirmRegisterMailFormular.vue b/admin/src/components/ConfirmRegisterMailFormular.vue new file mode 100644 index 000000000..866e8a487 --- /dev/null +++ b/admin/src/components/ConfirmRegisterMailFormular.vue @@ -0,0 +1,62 @@ + + + diff --git a/admin/src/components/CreationFormular.spec.js b/admin/src/components/CreationFormular.spec.js index f6bd1a924..1c7dd40fc 100644 --- a/admin/src/components/CreationFormular.spec.js +++ b/admin/src/components/CreationFormular.spec.js @@ -176,8 +176,8 @@ describe('CreationFormular', () => { await wrapper.find('.test-submit').trigger('click') }) - it('sends ... to apollo', () => { - expect(toastedErrorMock).toBeCalled() + it('toasts an error message', () => { + expect(toastedErrorMock).toBeCalledWith('Ouch!') }) }) diff --git a/admin/src/components/CreationFormular.vue b/admin/src/components/CreationFormular.vue index d73ea3c81..efaff3481 100644 --- a/admin/src/components/CreationFormular.vue +++ b/admin/src/components/CreationFormular.vue @@ -1,5 +1,6 @@