From 1c833d394f502a7aed2b5a648c0171a2fe4ee1e6 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 26 Jan 2022 15:06:37 +0100 Subject: [PATCH] fix and improve test --- .github/workflows/test.yml | 2 +- admin/src/pages/CreationConfirm.spec.js | 97 ++++++------------------- admin/src/pages/CreationConfirm.vue | 12 +-- 3 files changed, 29 insertions(+), 82 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8c2f5d96c..b21d0d355 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -470,7 +470,7 @@ jobs: report_name: Coverage Admin Interface type: lcov result_path: ./coverage/lcov.info - min_coverage: 77 + min_coverage: 78 token: ${{ github.token }} ############################################################################## diff --git a/admin/src/pages/CreationConfirm.spec.js b/admin/src/pages/CreationConfirm.spec.js index cc0a096da..e6b644bb7 100644 --- a/admin/src/pages/CreationConfirm.spec.js +++ b/admin/src/pages/CreationConfirm.spec.js @@ -1,6 +1,7 @@ import { mount } from '@vue/test-utils' import CreationConfirm from './CreationConfirm.vue' import { deletePendingCreation } from '../graphql/deletePendingCreation' +import { confirmPendingCreation } from '../graphql/confirmPendingCreation' const localVue = global.localVue @@ -26,7 +27,7 @@ const apolloQueryMock = jest.fn().mockResolvedValue({ lastName: 'Hotzenplotz', email: 'raeuber@hotzenplotz.de', amount: 1000000, - memo: 'Gut Ergatert', + memo: 'Gut Ergattert', date: new Date(), moderator: 0, }, @@ -73,6 +74,10 @@ describe('CreationConfirm', () => { expect(wrapper.find('div.creation-confirm').exists()).toBeTruthy() }) + it('has two pending creations', () => { + expect(wrapper.vm.pendingCreations).toHaveLength(2) + }) + describe('store', () => { it('commits resetOpenCreations to store', () => { expect(storeCommitMock).toBeCalledWith('resetOpenCreations') @@ -82,37 +87,9 @@ describe('CreationConfirm', () => { }) }) - describe('delete creation delete with success', () => { + describe('remove creation with success', () => { beforeEach(async () => { - apolloQueryMock.mockResolvedValue({ - data: { - getPendingCreations: [ - { - id: 1, - firstName: 'Bibi', - lastName: 'Bloxberg', - email: 'bibi@bloxberg.de', - amount: 500, - memo: 'Danke für alles', - date: new Date(), - moderator: 0, - }, - { - id: 2, - firstName: 'Räuber', - lastName: 'Hotzenplotz', - email: 'raeuber@hotzenplotz.de', - amount: 1000000, - memo: 'Gut Ergatert', - date: new Date(), - moderator: 0, - }, - ], - }, - }) - await wrapper - .findComponent({ name: 'UserTable' }) - .vm.$emit('remove-confirm-result', { id: 1 }, 'remove') + await wrapper.findComponent({ name: 'UserTable' }).vm.$emit('remove-creation', { id: 1 }) }) it('calls the deletePendingCreation mutation', () => { @@ -131,12 +108,10 @@ describe('CreationConfirm', () => { }) }) - describe('delete creation delete with error', () => { + describe('remove creation with error', () => { beforeEach(async () => { apolloMutateMock.mockRejectedValue({ message: 'Ouchhh!' }) - await wrapper - .findComponent({ name: 'UserTable' }) - .vm.$emit('remove-confirm-result', { id: 1 }, 'remove') + await wrapper.findComponent({ name: 'UserTable' }).vm.$emit('remove-creation', { id: 1 }) }) it('toasts an error message', () => { @@ -144,43 +119,16 @@ describe('CreationConfirm', () => { }) }) - describe('confirm creation delete with success', () => { + describe('confirm creation with success', () => { beforeEach(async () => { - apolloQueryMock.mockResolvedValue({ - data: { - getPendingCreations: [ - { - id: 1, - firstName: 'Bibi', - lastName: 'Bloxberg', - email: 'bibi@bloxberg.de', - amount: 500, - memo: 'Danke für alles', - date: new Date(), - moderator: 0, - }, - { - id: 2, - firstName: 'Räuber', - lastName: 'Hotzenplotz', - email: 'raeuber@hotzenplotz.de', - amount: 1000000, - memo: 'Gut Ergatert', - date: new Date(), - moderator: 0, - }, - ], - }, - }) - await wrapper - .findComponent({ name: 'UserTable' }) - .vm.$emit('remove-confirm-result', { id: 1 }, 'confirmed') + apolloMutateMock.mockResolvedValue({}) + await wrapper.findComponent({ name: 'UserTable' }).vm.$emit('confirm-creation', { id: 2 }) }) - it('calls the deletePendingCreation mutation', () => { - expect(apolloMutateMock).not.toBeCalledWith({ - mutation: deletePendingCreation, - variables: { id: 1 }, + it('calls the confirmPendingCreation mutation', () => { + expect(apolloMutateMock).toBeCalledWith({ + mutation: confirmPendingCreation, + variables: { id: 2 }, }) }) @@ -193,19 +141,18 @@ describe('CreationConfirm', () => { }) }) - describe('delete creation delete with error', () => { + describe('confirm creation with error', () => { beforeEach(async () => { - await wrapper - .findComponent({ name: 'UserTable' }) - .vm.$emit('remove-confirm-result', { id: 1 }, 'confirm') + apolloMutateMock.mockRejectedValue({ message: 'Ouchhh!' }) + await wrapper.findComponent({ name: 'UserTable' }).vm.$emit('confirm-creation', { id: 2 }) }) it('toasts an error message', () => { - expect(toastedErrorMock).toBeCalledWith('creation_form.toasted_default') + expect(toastedErrorMock).toBeCalledWith('Ouchhh!') }) }) - describe('server response is error', () => { + describe('server response got get pending creations is error', () => { beforeEach(() => { jest.clearAllMocks() apolloQueryMock.mockRejectedValue({ diff --git a/admin/src/pages/CreationConfirm.vue b/admin/src/pages/CreationConfirm.vue index 41411d410..712e4ece1 100644 --- a/admin/src/pages/CreationConfirm.vue +++ b/admin/src/pages/CreationConfirm.vue @@ -3,7 +3,7 @@ { - this.confirmResult = this.confirmResult.filter((obj) => obj.id !== item.id) + this.pendingCreations = this.pendingCreations.filter((obj) => obj.id !== item.id) this.$store.commit('openCreationsMinus', 1) this.$toasted.success(this.$t('creation_form.toasted_delete')) }) @@ -52,8 +52,8 @@ export default { id: item.id, }, }) - .then(() => { - this.confirmResult = this.confirmResult.filter((obj) => obj.id !== item.id) + .then((result) => { + this.pendingCreations = this.pendingCreations.filter((obj) => obj.id !== item.id) this.$store.commit('openCreationsMinus', 1) this.$toasted.success(this.$t('creation_form.toasted_created')) }) @@ -69,7 +69,7 @@ export default { }) .then((result) => { this.$store.commit('resetOpenCreations') - this.confirmResult = result.data.getPendingCreations + this.pendingCreations = result.data.getPendingCreations this.$store.commit('setOpenCreations', result.data.getPendingCreations.length) }) .catch((error) => {