var should = require('should'), sinon = require('sinon'), Promise = require('bluebird'), auth = require('../../../server/auth'), models = require('../../../server/models'), sandbox = sinon.sandbox.create(); describe('UNIT: auth validation', function () { before(function () { models.init(); }); afterEach(function () { sandbox.restore(); }); describe('ghost is enabled', function () { it('[success]', function () { sandbox.stub(models.User, 'isSetup').returns(Promise.resolve(false)); return auth.validation.switch({ authType: 'ghost' }); }); it('[success]', function () { sandbox.stub(models.User, 'isSetup').returns(Promise.resolve(true)); sandbox.stub(models.Client, 'findOne').returns(Promise.resolve(true)); return auth.validation.switch({ authType: 'ghost' }); }); it('[failure]', function () { sandbox.stub(models.User, 'isSetup').returns(Promise.resolve(true)); sandbox.stub(models.Client, 'findOne').returns(Promise.resolve(true)); return auth.validation.switch({ authType: 'password' }).catch(function (err) { should.exist(err); err.code.should.eql('AUTH_SWITCH'); }); }); }); describe('password is enabled', function () { it('[success]', function () { sandbox.stub(models.User, 'isSetup').returns(Promise.resolve(false)); return auth.validation.switch({ authType: 'password' }); }); it('[success]', function () { sandbox.stub(models.User, 'isSetup').returns(Promise.resolve(true)); sandbox.stub(models.Client, 'findOne').returns(Promise.resolve(false)); return auth.validation.switch({ authType: 'password' }); }); it('[failure]', function () { sandbox.stub(models.User, 'isSetup').returns(Promise.resolve(true)); sandbox.stub(models.Client, 'findOne').returns(Promise.resolve(true)); return auth.validation.switch({ authType: 'ghost' }).catch(function (err) { should.exist(err); err.code.should.eql('AUTH_SWITCH'); }); }); }); });