Skip to content

Instantly share code, notes, and snippets.

@TomV
Created May 19, 2013 03:54
Show Gist options
  • Save TomV/5606612 to your computer and use it in GitHub Desktop.
Save TomV/5606612 to your computer and use it in GitHub Desktop.
Example of using jake-lcm to define locomotive environment for testing a model
/* in the test/ folder of a locomotive app that is using jake-lcm */
var mocha = require('mocha')
, should = require('should')
, lcm = require('jake-lcm')
, User;
/* Assume there is a model in app/models/user.js with
var userSchema = new Schema({
display_name: { type: String, required: true, index: true , trim: true}
, email: { type: String, required: true, trim: true}
});
module.exports = db.model('User', userSchema )
*/
before(function (done) {
// Use jake-lcm to set up the environment
lcm.exec(
{
initializers: ['00_generic', '02_mongoose', '03_models']
},
function () {
var env = myapp.set('env');
if (env !== 'test') {
done(new Error("Error: Please set env to test (NODE_ENV=test) before running tests "));
} else {
console.log("Current env is " + env);
done();
}
});
});
describe("User", function () {
before(function (done) {
User = myapp.User;
done();
})
it("should save valid user", function (done) {
test_user = new User({ email: 'test@example.com', display_name: 'Joe Tester'});
test_user.save(done);
});
it("should not raise validation error when given an an invalid user record", function (done) {
test_user = new User({ email: 'test2@example.com' });
test_user.save(function (err, test_user) {
if (err) {
err.name.should.equal('ValidationError');
} else {
throw "Failed to detect error in User record";
}
done();
});
})
});/* set up */
var mocha = require('mocha')
, should = require('should')
, lcm = require('jake-lcm')
, User;
/* Assume there is a model in app/models/user.js with
var userSchema = new Schema({
display_name: { type: String, required: true, index: true , trim: true}
, email: { type: String, required: true, trim: true}
});
module.exports = db.model('User', userSchema )
*/
before(function (done) {
// Use jake-lcm to set up the environment
lcm.exec(
{
initializers: ['00_generic', '02_mongoose', '03_models']
},
function () {
var env = myapp.set('env');
if (env !== 'test') {
done(new Error("Error: Please set env to test (NODE_ENV=test) before running tests "));
} else {
console.log("Current env is " + env);
done();
}
});
});
describe("User", function () {
before(function (done) {
User = myapp.User;
done();
})
it("should save valid user", function (done) {
test_user = new User({ email: 'test@example.com', display_name: 'Joe Tester'});
test_user.save(done);
});
it("should not raise validation error when given an an invalid user record", function (done) {
test_user = new User({ email: 'test2@example.com' });
test_user.save(function (err, test_user) {
if (err) {
err.name.should.equal('ValidationError');
} else {
throw "Failed to detect error in User record";
}
done();
});
})
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment