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(); }); before(testUtils.teardown); describe('add', function () { beforeEach(testUtils.setup('roles')); afterEach(testUtils.teardown); 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(); }); }); }); });