linagora-rse
Version:
54 lines (43 loc) • 1.62 kB
JavaScript
const expect = require('chai').expect;
const request = require('supertest');
describe('The i18n API', function() {
let webserver, fixtures, helpers, dummyUser;
beforeEach(function(done) {
helpers = this.helpers;
this.mongoose = require('mongoose');
this.testEnv.initCore(() => {
webserver = helpers.requireBackend('webserver').webserver;
fixtures = helpers.requireFixture('models/users.js')(helpers.requireBackend('core/db/mongo/models/user'));
fixtures.newDummyUser(['dummy-user@email.com'])
.save(helpers.callbacks.noErrorAnd(user => {
dummyUser = user;
done();
}));
});
});
afterEach(function(done) {
this.mongoose.connection.db
.dropDatabase(helpers.callbacks.noErrorAnd(() => this.mongoose.disconnect(done)));
});
function sendRequestAsUser(user, next) {
helpers.api.loginAsUser(
webserver.application, user.emails[0], fixtures.password,
helpers.callbacks.noErrorAnd(loggedInAsUser => next(loggedInAsUser))
);
}
describe('GET /api/i18n', function() {
it('should send back 200 with i18n translations', function(done) {
sendRequestAsUser(dummyUser, loggedInAsUser => {
loggedInAsUser(request(webserver.application).get('/api/i18n'))
.expect(200)
.end(helpers.callbacks.noErrorAnd(res => {
expect(res.body).to.not.empty;
expect(res.body).to.have.property('en');
expect(res.body).to.have.property('fr');
expect(res.body).to.have.property('vi');
done();
}));
});
});
});
});