Files
freeCodeCamp/test/models/User_spec.js

47 lines
970 B
JavaScript
Raw Normal View History

2014-02-24 22:58:49 -07:00
process.env.NODE_ENV = 'test';
var User = require('../../models/User');
2014-02-25 21:15:35 -05:00
var mocha = require('mocha');
var chai = require('chai');
var should = chai.should();
var expect = chai.expect;
var mongoose = require('mongoose');
2014-02-24 22:58:49 -07:00
var user;
describe('User attributes', function() {
2014-02-25 21:15:35 -05:00
before(function(done) {
2014-02-24 22:58:49 -07:00
user = createUser();
done();
});
2014-02-25 21:15:35 -05:00
2014-02-24 22:58:49 -07:00
it('_id is a mongoDB ObjectId', function() {
2014-02-24 23:24:38 -07:00
user._id.should.be.an.instanceOf(mongoose.Types.ObjectId);
2014-02-24 22:58:49 -07:00
});
2014-02-25 21:15:35 -05:00
2014-02-24 22:58:49 -07:00
it('email should be a string', function() {
2014-02-25 21:15:35 -05:00
user.email.should.be.a('string');
2014-02-24 23:24:38 -07:00
});
2014-02-25 21:15:35 -05:00
2014-02-24 23:24:38 -07:00
it('password should be a string', function() {
2014-02-25 21:15:35 -05:00
expect(user.password).to.be.a('string');
2014-02-24 22:58:49 -07:00
});
})
2014-02-25 21:15:35 -05:00
function createUser() {
2014-02-24 22:58:49 -07:00
var user = new User({
email: getEmail(),
password: '__password__',
});
user.save();
return user;
}
// create unique email address
//
// TODO - use an implementation that guarantees string uniqueness
2014-02-25 21:15:35 -05:00
function getEmail() {
2014-02-24 22:58:49 -07:00
return new Date().getTime() + '@example.com';
}