diff --git a/test/api/v4/user/POST-user_reset.test.js b/test/api/v4/user/POST-user_reset.test.js index 2aba79baff..8a489e2e38 100644 --- a/test/api/v4/user/POST-user_reset.test.js +++ b/test/api/v4/user/POST-user_reset.test.js @@ -6,6 +6,8 @@ import { translate as t, } from '../../../helpers/api-integration/v4'; +const RESET_CONFIRMATION = 'RESET'; + describe('POST /user/reset', () => { let user; @@ -172,4 +174,68 @@ describe('POST /user/reset', () => { expect(heroRes.secret).to.exist; expect(heroRes.secret.text).to.be.eq('Super-Hero'); }); + + context('user with Google auth', async () => { + beforeEach(async () => { + user = await generateUser({ + auth: { + google: { + id: 'google-id', + }, + }, + }); + }); + + it('resets a Google user', async () => { + const task = await user.post('/tasks/user', { + text: 'test habit', + type: 'habit', + }); + + await user.post('/user/reset', { + password: RESET_CONFIRMATION, + }); + await user.sync(); + + await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({ + code: 404, + error: 'NotFound', + message: t('messageTaskNotFound'), + }); + + expect(user.tasksOrder.habits).to.be.empty; + }); + }); + + context('user with Apple auth', async () => { + beforeEach(async () => { + user = await generateUser({ + auth: { + apple: { + id: 'apple-id', + }, + }, + }); + }); + + it('resets an Apple user', async () => { + const task = await user.post('/tasks/user', { + text: 'test habit', + type: 'habit', + }); + + await user.post('/user/reset', { + password: RESET_CONFIRMATION, + }); + await user.sync(); + + await expect(user.get(`/tasks/${task._id}`)).to.eventually.be.rejected.and.eql({ + code: 404, + error: 'NotFound', + message: t('messageTaskNotFound'), + }); + + expect(user.tasksOrder.habits).to.be.empty; + }); + }); }); diff --git a/website/client/package-lock.json b/website/client/package-lock.json index cab468beaa..3ce658b16c 100644 --- a/website/client/package-lock.json +++ b/website/client/package-lock.json @@ -18676,7 +18676,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "strip-eof": { "version": "1.0.0", diff --git a/website/client/src/pages/settings/settingRows/resetAccount.vue b/website/client/src/pages/settings/settingRows/resetAccount.vue index 2db5351e71..9da36aed56 100644 --- a/website/client/src/pages/settings/settingRows/resetAccount.vue +++ b/website/client/src/pages/settings/settingRows/resetAccount.vue @@ -35,7 +35,7 @@ v-html="$t('resetText1')" > -