line coverage newsletter to 100%

This commit is contained in:
Moriz Wahl 2021-09-27 16:15:00 +02:00 committed by einhornimmond
parent 3a50a3d93c
commit 2c29cf5b95

View File

@ -1,6 +1,6 @@
import { mount } from '@vue/test-utils' import { mount } from '@vue/test-utils'
import UserCardNewsletter from './UserCard_Newsletter' import UserCardNewsletter from './UserCard_Newsletter'
import { unsubscribeNewsletter } from '../../../graphql/mutations' import { unsubscribeNewsletter, subscribeNewsletter } from '../../../graphql/mutations'
const localVue = global.localVue const localVue = global.localVue
@ -9,7 +9,6 @@ const mockAPIcall = jest.fn()
const toastErrorMock = jest.fn() const toastErrorMock = jest.fn()
const toastSuccessMock = jest.fn() const toastSuccessMock = jest.fn()
const storeCommitMock = jest.fn() const storeCommitMock = jest.fn()
const newsletterStateMock = jest.fn().mockReturnValue(true)
describe('UserCard_Newsletter', () => { describe('UserCard_Newsletter', () => {
let wrapper let wrapper
@ -20,7 +19,7 @@ describe('UserCard_Newsletter', () => {
state: { state: {
language: 'de', language: 'de',
email: 'peter@lustig.de', email: 'peter@lustig.de',
newsletterState: newsletterStateMock, newsletterState: true,
}, },
commit: storeCommitMock, commit: storeCommitMock,
}, },
@ -51,13 +50,14 @@ describe('UserCard_Newsletter', () => {
}) })
describe('unsubscribe with sucess', () => { describe('unsubscribe with sucess', () => {
beforeEach(() => { beforeEach(async () => {
await wrapper.setData({ newsletterState: false })
mockAPIcall.mockResolvedValue({ mockAPIcall.mockResolvedValue({
data: { data: {
unsubscribeNewsletter: true, unsubscribeNewsletter: true,
}, },
}) })
wrapper.find('input').trigger('change') await wrapper.find('input').trigger('change')
}) })
it('calls the unsubscribe mutation', () => { it('calls the unsubscribe mutation', () => {
@ -78,6 +78,36 @@ describe('UserCard_Newsletter', () => {
}) })
}) })
describe('subscribe with sucess', () => {
beforeEach(async () => {
await wrapper.setData({ newsletterState: true })
mockAPIcall.mockResolvedValue({
data: {
subscribeNewsletter: true,
},
})
wrapper.find('input').trigger('change')
})
it('calls the subscribe mutation', () => {
expect(mockAPIcall).toBeCalledWith({
mutation: subscribeNewsletter,
variables: {
email: 'peter@lustig.de',
language: 'de',
},
})
})
it('updates the store', () => {
expect(storeCommitMock).toBeCalledWith('newsletterState', true)
})
it('toasts a success message', () => {
expect(toastSuccessMock).toBeCalledWith('setting.newsletterFalse')
})
})
describe('unsubscribe with server error', () => { describe('unsubscribe with server error', () => {
beforeEach(() => { beforeEach(() => {
mockAPIcall.mockRejectedValue({ mockAPIcall.mockRejectedValue({