dubdiff/server/api/user/user.model.spec.js

61 lines
1.3 KiB
JavaScript

'use strict';
var should = require('should');
var app = require('../../app');
var User = require('./user.model');
var user = new User({
provider: 'local',
name: 'Fake User',
email: 'test@test.com',
password: 'password'
});
describe('User Model', function() {
before(function(done) {
// Clear users before testing
User.remove().exec().then(function() {
done();
});
});
afterEach(function(done) {
User.remove().exec().then(function() {
done();
});
});
it('should begin with no users', function(done) {
User.find({}, function(err, users) {
users.should.have.length(0);
done();
});
});
it('should fail when saving a duplicate user', function(done) {
user.save(function() {
var userDup = new User(user);
userDup.save(function(err) {
should.exist(err);
done();
});
});
});
it('should fail when saving without an email', function(done) {
user.email = '';
user.save(function(err) {
should.exist(err);
done();
});
});
it("should authenticate user if password is valid", function() {
return user.authenticate('password').should.be.true;
});
it("should not authenticate user if password is invalid", function() {
return user.authenticate('blah').should.not.be.true;
});
});