From 8a2d238f9632ad2edd08d688b28a5e32f7ff7c7b Mon Sep 17 00:00:00 2001 From: ogerly Date: Sun, 26 Apr 2020 13:11:32 +0200 Subject: [PATCH 01/27] fix: #3498 Checkboxes missing on delete user account page --- webapp/graphql/User.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/webapp/graphql/User.js b/webapp/graphql/User.js index daf586284..dac8c9f35 100644 --- a/webapp/graphql/User.js +++ b/webapp/graphql/User.js @@ -265,9 +265,11 @@ export const checkSlugAvailableQuery = gql` export const currentUserQuery = gql` ${userFragment} + ${userCountsFragment} query { currentUser { ...user + ...userCounts email role about From 4210727ddf11253aa52164a8d6096835ec81eac7 Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 27 Apr 2020 13:55:29 +0200 Subject: [PATCH 02/27] bug: fix - contributionCount, commentCount remove from code --- .../components/DeleteData/DeleteData.spec.js | 58 +++++++++++-------- webapp/components/DeleteData/DeleteData.vue | 22 +++---- webapp/locales/de.json | 6 +- webapp/locales/en.json | 4 +- 4 files changed, 45 insertions(+), 45 deletions(-) diff --git a/webapp/components/DeleteData/DeleteData.spec.js b/webapp/components/DeleteData/DeleteData.spec.js index e9205fa5a..8e4ffb0ac 100644 --- a/webapp/components/DeleteData/DeleteData.spec.js +++ b/webapp/components/DeleteData/DeleteData.spec.js @@ -45,7 +45,7 @@ describe('DeleteData.vue', () => { } getters = { 'auth/user': () => { - return { id: 'u343', name: deleteAccountName, contributionsCount: 2, commentedCount: 3 } + return { id: 'u343', name: deleteAccountName } }, } actions = { 'auth/logout': jest.fn() } @@ -68,12 +68,12 @@ describe('DeleteData.vue', () => { jest.clearAllMocks() }) - it('defaults to deleteContributions to false', () => { - expect(wrapper.vm.deleteContributions).toEqual(false) + it('defaults to deleteContributions to true', () => { + expect(wrapper.vm.deleteContributions).toEqual(true) }) - it('defaults to deleteComments to false', () => { - expect(wrapper.vm.deleteComments).toEqual(false) + it('defaults to deleteComments to true', () => { + expect(wrapper.vm.deleteComments).toEqual(true) }) it('defaults to deleteEnabled to false', () => { @@ -93,7 +93,31 @@ describe('DeleteData.vue', () => { deleteAccountBtn = wrapper.find('[data-test="delete-button"]') }) - it('if deleteEnabled is true and only deletes user by default', () => { + + it("deletes user's posts and comments if requested by default", () => { + mocks.$t.mockImplementation(() => deleteContributionsMessage) + enableContributionDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(0) + mocks.$t.mockImplementation(() => deleteCommentsMessage) + enableCommentDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(1) + deleteAccountBtn.trigger('click') + expect(mocks.$apollo.mutate).toHaveBeenCalledWith( + expect.objectContaining({ + variables: { + id: 'u343', + resource: ['Post', 'Comment'], + }, + }), + ) + }) + + + it('if deleteEnabled is true and only deletes user ', () => { + mocks.$t.mockImplementation(() => deleteContributionsMessage) + enableContributionDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(0) + enableContributionDeletionCheckbox.trigger('click') + mocks.$t.mockImplementation(() => deleteCommentsMessage) + enableCommentDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(1) + enableCommentDeletionCheckbox.trigger('click') deleteAccountBtn.trigger('click') expect(mocks.$apollo.mutate).toHaveBeenCalledWith( expect.objectContaining({ @@ -107,7 +131,7 @@ describe('DeleteData.vue', () => { it("deletes a user's posts if requested", () => { mocks.$t.mockImplementation(() => deleteContributionsMessage) - enableContributionDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(0) + enableContributionDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(1) enableContributionDeletionCheckbox.trigger('click') deleteAccountBtn.trigger('click') expect(mocks.$apollo.mutate).toHaveBeenCalledWith( @@ -122,7 +146,7 @@ describe('DeleteData.vue', () => { it("deletes a user's comments if requested", () => { mocks.$t.mockImplementation(() => deleteCommentsMessage) - enableCommentDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(1) + enableCommentDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(0) enableCommentDeletionCheckbox.trigger('click') deleteAccountBtn.trigger('click') expect(mocks.$apollo.mutate).toHaveBeenCalledWith( @@ -135,23 +159,7 @@ describe('DeleteData.vue', () => { ) }) - it("deletes a user's posts and comments if requested", () => { - mocks.$t.mockImplementation(() => deleteContributionsMessage) - enableContributionDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(0) - enableContributionDeletionCheckbox.trigger('click') - mocks.$t.mockImplementation(() => deleteCommentsMessage) - enableCommentDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(1) - enableCommentDeletionCheckbox.trigger('click') - deleteAccountBtn.trigger('click') - expect(mocks.$apollo.mutate).toHaveBeenCalledWith( - expect.objectContaining({ - variables: { - id: 'u343', - resource: ['Post', 'Comment'], - }, - }), - ) - }) + it('shows a success toaster after successful mutation', async () => { await deleteAccountBtn.trigger('click') diff --git a/webapp/components/DeleteData/DeleteData.vue b/webapp/components/DeleteData/DeleteData.vue index 714e4c410..4cf8bccfb 100644 --- a/webapp/components/DeleteData/DeleteData.vue +++ b/webapp/components/DeleteData/DeleteData.vue @@ -9,23 +9,15 @@

{{ $t('settings.deleteUserAccount.accountDescription') }}

-