tests: reviews works

This commit is contained in:
ogerly 2020-08-04 11:42:12 +02:00
parent b25bf7b0b3
commit 9b14a5327a
2 changed files with 162 additions and 170 deletions

View File

@ -20,7 +20,7 @@ describe('DeleteData.vue', () => {
beforeEach(() => { beforeEach(() => {
mocks = { mocks = {
$t: jest.fn(), $t: jest.fn((a) => a),
$apollo: { $apollo: {
mutate: jest mutate: jest
.fn() .fn()
@ -68,15 +68,15 @@ describe('DeleteData.vue', () => {
jest.clearAllMocks() jest.clearAllMocks()
}) })
it('defaults to deleteContributions to true', () => { it('checkbox deleteContributions defaults be false', () => {
expect(wrapper.vm.deleteContributions).toEqual(false) expect(wrapper.vm.deleteContributions).toEqual(false)
}) })
it('defaults to deleteComments to true', () => { it('checkbox deleteComments defaults be false', () => {
expect(wrapper.vm.deleteComments).toEqual(false) expect(wrapper.vm.deleteComments).toEqual(false)
}) })
it('defaults to deleteEnabled to false', () => { it('deleteButton defaults be false', () => {
expect(wrapper.vm.deleteEnabled).toEqual(false) expect(wrapper.vm.deleteEnabled).toEqual(false)
}) })
@ -94,10 +94,6 @@ describe('DeleteData.vue', () => {
}) })
it('if deleteEnabled is true and only deletes user ', () => { it('if deleteEnabled is true and only deletes user ', () => {
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') deleteAccountBtn.trigger('click')
expect(mocks.$apollo.mutate).toHaveBeenCalledWith( expect(mocks.$apollo.mutate).toHaveBeenCalledWith(
expect.objectContaining({ expect.objectContaining({
@ -110,11 +106,9 @@ describe('DeleteData.vue', () => {
}) })
it("deletes user's posts and comments if requested by default ", () => { it("deletes user's posts and comments if requested by default ", () => {
mocks.$t.mockImplementation(() => deleteContributionsMessage) enableContributionDeletionCheckbox = wrapper.find('[data-test="contributions-deletion-checkbox"]')
enableContributionDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(0)
enableContributionDeletionCheckbox.trigger('click') enableContributionDeletionCheckbox.trigger('click')
mocks.$t.mockImplementation(() => deleteCommentsMessage) enableCommentDeletionCheckbox = wrapper.find('[data-test="comments-deletion-checkbox"]')
enableCommentDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(1)
enableCommentDeletionCheckbox.trigger('click') enableCommentDeletionCheckbox.trigger('click')
deleteAccountBtn.trigger('click') deleteAccountBtn.trigger('click')
expect(mocks.$apollo.mutate).toHaveBeenCalledWith( expect(mocks.$apollo.mutate).toHaveBeenCalledWith(
@ -128,8 +122,7 @@ describe('DeleteData.vue', () => {
}) })
it("deletes a user's posts if requested", () => { it("deletes a user's posts if requested", () => {
mocks.$t.mockImplementation(() => deleteContributionsMessage) enableContributionDeletionCheckbox = wrapper.find('[data-test="contributions-deletion-checkbox"]')
enableContributionDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(0)
enableContributionDeletionCheckbox.trigger('click') enableContributionDeletionCheckbox.trigger('click')
deleteAccountBtn.trigger('click') deleteAccountBtn.trigger('click')
expect(mocks.$apollo.mutate).toHaveBeenCalledWith( expect(mocks.$apollo.mutate).toHaveBeenCalledWith(
@ -143,8 +136,7 @@ describe('DeleteData.vue', () => {
}) })
it("deletes a user's comments if requested", () => { it("deletes a user's comments if requested", () => {
mocks.$t.mockImplementation(() => deleteCommentsMessage) enableCommentDeletionCheckbox = wrapper.find('[data-test="comments-deletion-checkbox"]')
enableCommentDeletionCheckbox = wrapper.findAll('input[type="checkbox"]').at(1)
enableCommentDeletionCheckbox.trigger('click') enableCommentDeletionCheckbox.trigger('click')
deleteAccountBtn.trigger('click') deleteAccountBtn.trigger('click')
expect(mocks.$apollo.mutate).toHaveBeenCalledWith( expect(mocks.$apollo.mutate).toHaveBeenCalledWith(
@ -157,19 +149,19 @@ describe('DeleteData.vue', () => {
) )
}) })
it('shows a success toaster after successful mutation', async () => { it('shows a success toaster after successful mutation', async() => {
await deleteAccountBtn.trigger('click') await deleteAccountBtn.trigger('click')
expect(mocks.$toast.success).toHaveBeenCalledTimes(1) expect(mocks.$toast.success).toHaveBeenCalledTimes(1)
}) })
it('redirect the user to the homepage', async () => { it('redirect the user to the homepage', async() => {
await deleteAccountBtn.trigger('click') await deleteAccountBtn.trigger('click')
expect(mocks.$router.history.push).toHaveBeenCalledWith('/') expect(mocks.$router.history.push).toHaveBeenCalledWith('/')
}) })
}) })
describe('error handling', () => { describe('error handling', () => {
it('shows an error toaster when the mutation rejects', async () => { it('shows an error toaster when the mutation rejects', async() => {
enableDeletionInput = wrapper.find('.ds-input') enableDeletionInput = wrapper.find('.ds-input')
enableDeletionInput.setValue(deleteAccountName) enableDeletionInput.setValue(deleteAccountName)
await Vue.nextTick() await Vue.nextTick()

View File

@ -10,7 +10,7 @@
<ds-input v-model="enableDeletionValue" /> <ds-input v-model="enableDeletionValue" />
<p class="notice">{{ $t('settings.deleteUserAccount.accountDescription') }}</p> <p class="notice">{{ $t('settings.deleteUserAccount.accountDescription') }}</p>
<label class="checkbox"> <label class="checkbox">
<input type="checkbox" v-model="deleteContributions" /> <input type="checkbox" v-model="deleteContributions" data-test="contributions-deletion-checkbox"/>
{{ {{
$t( $t(
'settings.deleteUserAccount.contributionsCount', 'settings.deleteUserAccount.contributionsCount',
@ -22,7 +22,7 @@
}} }}
</label> </label>
<label class="checkbox"> <label class="checkbox">
<input type="checkbox" v-model="deleteComments" /> <input type="checkbox" v-model="deleteComments" data-test="comments-deletion-checkbox" />
{{ {{
$t( $t(
'settings.deleteUserAccount.commentedCount', 'settings.deleteUserAccount.commentedCount',