2018-04-25 12:56:45 +03:00
|
|
|
const should = require('should'),
|
|
|
|
sinon = require('sinon'),
|
|
|
|
common = require('../../../server/lib/common'),
|
|
|
|
models = require('../../../server/models'),
|
|
|
|
settingsCache = require('../../../server/services/settings/cache'),
|
|
|
|
testUtils = require('../../utils'),
|
|
|
|
sandbox = sinon.sandbox.create();
|
|
|
|
|
|
|
|
describe('Unit: models/invite', function () {
|
|
|
|
before(function () {
|
|
|
|
models.init();
|
|
|
|
sandbox.stub(settingsCache, 'get').withArgs('db_hash').returns('12345678');
|
|
|
|
});
|
|
|
|
|
|
|
|
after(function () {
|
|
|
|
sandbox.restore();
|
|
|
|
});
|
|
|
|
|
2018-06-12 21:26:16 +03:00
|
|
|
before(testUtils.teardown);
|
2018-04-25 12:56:45 +03:00
|
|
|
|
2018-06-12 21:26:16 +03:00
|
|
|
describe('add', function () {
|
|
|
|
beforeEach(testUtils.setup('roles'));
|
|
|
|
afterEach(testUtils.teardown);
|
2018-04-25 12:56:45 +03:00
|
|
|
|
|
|
|
it('default', function () {
|
|
|
|
return models.Invite.add({email: 'invited@test.org', role_id: testUtils.DataGenerator.forKnex.roles[1].id})
|
|
|
|
.then(function (invite) {
|
|
|
|
invite.get('status').should.eql('pending');
|
|
|
|
invite.get('email').should.eql('invited@test.org');
|
|
|
|
should.exist(invite.get('token'));
|
|
|
|
should.exist(invite.get('expires'));
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('set status with none internal context', function () {
|
|
|
|
return models.Invite.add({
|
|
|
|
email: 'invited@test.org',
|
|
|
|
role_id: testUtils.DataGenerator.forKnex.roles[1].id,
|
|
|
|
status: 'sent'
|
|
|
|
}).then(function (invite) {
|
|
|
|
invite.get('status').should.eql('pending');
|
|
|
|
invite.get('email').should.eql('invited@test.org');
|
|
|
|
should.exist(invite.get('token'));
|
|
|
|
should.exist(invite.get('expires'));
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('set status with internal context', function () {
|
|
|
|
return models.Invite.add({
|
|
|
|
email: 'invited@test.org',
|
|
|
|
role_id: testUtils.DataGenerator.forKnex.roles[1].id,
|
|
|
|
status: 'sent'
|
|
|
|
}, testUtils.context.internal).then(function (invite) {
|
|
|
|
invite.get('status').should.eql('sent');
|
|
|
|
invite.get('email').should.eql('invited@test.org');
|
|
|
|
should.exist(invite.get('token'));
|
|
|
|
should.exist(invite.get('expires'));
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('[error] no role passed', function () {
|
|
|
|
return models.Invite.add({email: 'invited@test.org'})
|
|
|
|
.then(function () {
|
|
|
|
'Should fail'.should.be.true();
|
|
|
|
})
|
|
|
|
.catch(function (err) {
|
|
|
|
(err[0] instanceof common.errors.ValidationError).should.be.true();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|