Files
talk/test/server/routes/api/user/index.js
T
2018-01-11 20:00:34 -07:00

63 lines
1.6 KiB
JavaScript

const passport = require('../../../passport');
const app = require('../../../../../app');
const mailer = require('../../../../../services/mailer');
const SettingsService = require('../../../../../services/settings');
const settings = {
id: '1',
moderation: 'PRE',
wordlist: { banned: ['bad words'], suspect: ['suspect words'] },
};
const chai = require('chai');
chai.should();
chai.use(require('chai-http'));
const expect = chai.expect;
const UsersService = require('../../../../../services/users');
describe('/api/v1/users/:user_id/email/confirm', () => {
let mockUser;
beforeEach(() =>
SettingsService.init(settings)
.then(() => {
return UsersService.createLocalUser(
'ana@gmail.com',
'123321123',
'Ana'
);
})
.then(user => {
mockUser = user;
})
);
describe('#post', () => {
it('should send an email when we hit the endpoint', () => {
expect(mailer.task.tasks).to.have.length(0);
return chai
.request(app)
.post(`/api/v1/users/${mockUser.id}/email/confirm`)
.set(passport.inject({ role: 'ADMIN' }))
.then(res => {
expect(res).to.have.status(204);
expect(mailer.task.tasks).to.have.length(1);
});
});
it('should send a 404 on not matching a user', () => {
return chai
.request(app)
.post(`/api/v1/users/${mockUser.id}/email/confirm`)
.set(passport.inject({ role: 'ADMIN' }))
.then(res => {
expect(res).to.have.status(204);
expect(mailer.task.tasks).to.have.length(1);
});
});
});
});