mirror of
https://github.com/mmumshad/ansible-playable.git
synced 2025-03-09 23:38:54 +00:00
Initial Commit
This commit is contained in:
commit
c92f737237
273 changed files with 16964 additions and 0 deletions
164
server/api/user/user.model.spec.js
Normal file
164
server/api/user/user.model.spec.js
Normal file
|
@ -0,0 +1,164 @@
|
|||
'use strict';
|
||||
|
||||
import app from '../..';
|
||||
import User from './user.model';
|
||||
var user;
|
||||
var genUser = function() {
|
||||
user = new User({
|
||||
provider: 'local',
|
||||
name: 'Fake User',
|
||||
email: 'test@example.com',
|
||||
password: 'password'
|
||||
});
|
||||
return user;
|
||||
};
|
||||
|
||||
describe('User Model', function() {
|
||||
before(function() {
|
||||
// Clear users before testing
|
||||
return User.remove();
|
||||
});
|
||||
|
||||
beforeEach(function() {
|
||||
genUser();
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
return User.remove();
|
||||
});
|
||||
|
||||
it('should begin with no users', function() {
|
||||
return expect(User.find({}).exec()).to
|
||||
.eventually.have.length(0);
|
||||
});
|
||||
|
||||
it('should fail when saving a duplicate user', function() {
|
||||
return expect(user.save()
|
||||
.then(function() {
|
||||
var userDup = genUser();
|
||||
return userDup.save();
|
||||
})).to.be.rejected;
|
||||
});
|
||||
|
||||
describe('#email', function() {
|
||||
it('should fail when saving with a blank email', function() {
|
||||
user.email = '';
|
||||
return expect(user.save()).to.be.rejected;
|
||||
});
|
||||
|
||||
it('should fail when saving with a null email', function() {
|
||||
user.email = null;
|
||||
return expect(user.save()).to.be.rejected;
|
||||
});
|
||||
|
||||
it('should fail when saving without an email', function() {
|
||||
user.email = undefined;
|
||||
return expect(user.save()).to.be.rejected;
|
||||
});
|
||||
|
||||
describe('given user provider is google', function() {
|
||||
beforeEach(function() {
|
||||
user.provider = 'google';
|
||||
});
|
||||
|
||||
it('should succeed when saving without an email', function() {
|
||||
user.email = null;
|
||||
return expect(user.save()).to.be.fulfilled;
|
||||
});
|
||||
});
|
||||
|
||||
describe('given user provider is facebook', function() {
|
||||
beforeEach(function() {
|
||||
user.provider = 'facebook';
|
||||
});
|
||||
|
||||
it('should succeed when saving without an email', function() {
|
||||
user.email = null;
|
||||
return expect(user.save()).to.be.fulfilled;
|
||||
});
|
||||
});
|
||||
|
||||
describe('given user provider is github', function() {
|
||||
beforeEach(function() {
|
||||
user.provider = 'github';
|
||||
});
|
||||
|
||||
it('should succeed when saving without an email', function() {
|
||||
user.email = null;
|
||||
return expect(user.save()).to.be.fulfilled;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('#password', function() {
|
||||
it('should fail when saving with a blank password', function() {
|
||||
user.password = '';
|
||||
return expect(user.save()).to.be.rejected;
|
||||
});
|
||||
|
||||
it('should fail when saving with a null password', function() {
|
||||
user.password = null;
|
||||
return expect(user.save()).to.be.rejected;
|
||||
});
|
||||
|
||||
it('should fail when saving without a password', function() {
|
||||
user.password = undefined;
|
||||
return expect(user.save()).to.be.rejected;
|
||||
});
|
||||
|
||||
describe('given the user has been previously saved', function() {
|
||||
beforeEach(function() {
|
||||
return user.save();
|
||||
});
|
||||
|
||||
it('should authenticate user if valid', function() {
|
||||
expect(user.authenticate('password')).to.be.true;
|
||||
});
|
||||
|
||||
it('should not authenticate user if invalid', function() {
|
||||
expect(user.authenticate('blah')).to.not.be.true;
|
||||
});
|
||||
|
||||
it('should remain the same hash unless the password is updated', function() {
|
||||
user.name = 'Test User';
|
||||
return expect(user.save()
|
||||
.then(function(u) {
|
||||
return u.authenticate('password');
|
||||
})).to.eventually.be.true;
|
||||
});
|
||||
});
|
||||
|
||||
describe('given user provider is google', function() {
|
||||
beforeEach(function() {
|
||||
user.provider = 'google';
|
||||
});
|
||||
|
||||
it('should succeed when saving without a password', function() {
|
||||
user.password = null;
|
||||
return expect(user.save()).to.be.fulfilled;
|
||||
});
|
||||
});
|
||||
|
||||
describe('given user provider is facebook', function() {
|
||||
beforeEach(function() {
|
||||
user.provider = 'facebook';
|
||||
});
|
||||
|
||||
it('should succeed when saving without a password', function() {
|
||||
user.password = null;
|
||||
return expect(user.save()).to.be.fulfilled;
|
||||
});
|
||||
});
|
||||
|
||||
describe('given user provider is github', function() {
|
||||
beforeEach(function() {
|
||||
user.provider = 'github';
|
||||
});
|
||||
|
||||
it('should succeed when saving without a password', function() {
|
||||
user.password = null;
|
||||
return expect(user.save()).to.be.fulfilled;
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue