Added datatypes tests

This commit is contained in:
Anatoliy Chakkaev 2013-04-06 14:34:16 +04:00
parent 67d186e26c
commit 9fc4e5e887
2 changed files with 59 additions and 0 deletions

View File

@ -1,3 +1,4 @@
require('./datatype.test.js');
require('./basic-querying.test.js'); require('./basic-querying.test.js');
require('./hooks.test.js'); require('./hooks.test.js');
require('./relations.test.js'); require('./relations.test.js');

58
test/datatype.test.js Normal file
View File

@ -0,0 +1,58 @@
var db, Model;
var should = require('should');
describe.only('datatypes', function() {
before(function(done){
db = getSchema();
Model = db.define('Model', {
str: String,
date: Date,
num: Number,
bool: Boolean,
list: {type: []},
});
db.automigrate(function() {
Model.destroyAll(done);
});
});
it('should keep types when get read data from db', function(done) {
var d = new Date, id;
Model.create({
str: 'hello', date: d, num: 3, bool: true, list: ['test']
}, function(err, m) {
should.not.exist(err);
should.exist(m && m.id);
id = m.id;
testFind(testAll);
});
function testFind(next) {
Model.find(id, function(err, m) {
should.not.exist(err);
should.exist(m);
m.str.should.be.a('string');
m.num.should.be.a('number');
m.bool.should.be.a('boolean');
m.date.should.be.an.instanceOf(Date);
m.date.toString().should.equal(d.toString(), 'Time must match');
next();
});
}
function testAll() {
Model.findOne(function(err, m) {
should.not.exist(err);
should.exist(m);
m.str.should.be.a('string');
m.num.should.be.a('number');
m.bool.should.be.a('boolean');
m.date.should.be.an.instanceOf(Date);
m.date.toString().should.equal(d.toString(), 'Time must match');
done();
});
}
});
});