Updated route to be named /emails/unsubscribe and other minor fixes

This commit is contained in:
Keith Holliday
2016-02-22 09:03:21 -06:00
parent 34b03934cc
commit d60ff421c9
2 changed files with 10 additions and 13 deletions

View File

@@ -5,7 +5,7 @@ import {
import { encrypt } from '../../../../../website/src/libs/api-v3/encryption'; import { encrypt } from '../../../../../website/src/libs/api-v3/encryption';
import { v4 as generateUUID } from 'uuid'; import { v4 as generateUUID } from 'uuid';
describe('GET /unsubscribe', () => { describe('GET /email/unsubscribe', () => {
let user; let user;
let testEmail = 'test@habitica.com'; let testEmail = 'test@habitica.com';
@@ -14,7 +14,7 @@ describe('GET /unsubscribe', () => {
}); });
it('return error when code is not provided', async () => { it('return error when code is not provided', async () => {
await expect(user.get('/unsubscribe')).to.eventually.be.rejected.and.eql({ await expect(user.get('/email/unsubscribe')).to.eventually.be.rejected.and.eql({
code: 400, code: 400,
error: 'BadRequest', error: 'BadRequest',
message: 'Invalid request parameters.', message: 'Invalid request parameters.',
@@ -26,7 +26,7 @@ describe('GET /unsubscribe', () => {
_id: generateUUID(), _id: generateUUID(),
})); }));
await expect(user.get(`/unsubscribe?code=${code}`)).to.eventually.be.rejected.and.eql({ await expect(user.get(`/email/unsubscribe?code=${code}`)).to.eventually.be.rejected.and.eql({
code: 404, code: 404,
error: 'NotFound', error: 'NotFound',
message: t('userNotFound'), message: t('userNotFound'),
@@ -39,7 +39,7 @@ describe('GET /unsubscribe', () => {
email: user.email, email: user.email,
})); }));
await user.get(`/unsubscribe?code=${code}`); await user.get(`/email/unsubscribe?code=${code}`);
let unsubscribedUser = await user.get('/user'); let unsubscribedUser = await user.get('/user');
@@ -51,7 +51,7 @@ describe('GET /unsubscribe', () => {
email: testEmail, email: testEmail,
})); }));
let unsubscribedMessage = await user.get(`/unsubscribe?code=${code}`); let unsubscribedMessage = await user.get(`/email/unsubscribe?code=${code}`);
expect(unsubscribedMessage).to.equal('<h1>Unsubscribed successfully!</h1> You won\'t receive any other email from Habitica.'); expect(unsubscribedMessage).to.equal('<h1>Unsubscribed successfully!</h1> You won\'t receive any other email from Habitica.');
}); });
@@ -61,7 +61,7 @@ describe('GET /unsubscribe', () => {
email: testEmail, email: testEmail,
})); }));
let unsubscribedMessage = await user.get(`/unsubscribe?code=${code}`); let unsubscribedMessage = await user.get(`/email/unsubscribe?code=${code}`);
expect(unsubscribedMessage).to.equal('<h1>Unsubscribed successfully!</h1> You won\'t receive any other email from Habitica.'); expect(unsubscribedMessage).to.equal('<h1>Unsubscribed successfully!</h1> You won\'t receive any other email from Habitica.');
}); });

View File

@@ -19,7 +19,7 @@ let api = {};
*/ */
api.unsubscribe = { api.unsubscribe = {
method: 'GET', method: 'GET',
url: '/unsubscribe', url: '/email/unsubscribe',
middlewares: [], middlewares: [],
async handler (req, res) { async handler (req, res) {
req.checkQuery({ req.checkQuery({
@@ -41,14 +41,11 @@ api.unsubscribe = {
if (userUpdated.nModified !== 1) throw new NotFound(res.t('userNotFound')); if (userUpdated.nModified !== 1) throw new NotFound(res.t('userNotFound'));
res.send(`<h1>${res.t('unsubscribedSuccessfully', null, req.language)}</h1> res.t('unsubscribedTextUsers', null, req.language)`); res.send(`<h1>${res.t('unsubscribedSuccessfully')}</h1> ${res.t('unsubscribedTextUsers')}`);
} else { } else {
let unsubscribedEmail = await EmailUnsubscription.findOne({email: data.email}); let unsubscribedEmail = await EmailUnsubscription.findOne({email: data.email});
let okResponse = `<h1>${res.t('unsubscribedSuccessfully', null, req.language)}</h1> ${res.t('unsubscribedTextOthers', null, req.language)}`; let okResponse = `<h1>${res.t('unsubscribedSuccessfully')}</h1> ${res.t('unsubscribedTextOthers')}`;
if (unsubscribedEmail) return res.send(okResponse); if (!unsubscribedEmail) await EmailUnsubscription.create({email: data.email});
await EmailUnsubscription.create({email: data.email});
res.send(okResponse); res.send(okResponse);
} }
}, },