84 lines
1.9 KiB
JavaScript
84 lines
1.9 KiB
JavaScript
// This test written in mocha+should.js
|
|
var should = require('./init.js');
|
|
var assert = require('assert');
|
|
|
|
var jdb = require('../');
|
|
var ModelBuilder = jdb.ModelBuilder;
|
|
var DataSource = jdb.DataSource;
|
|
|
|
var ModelDefinition = require('../lib/model-definition');
|
|
|
|
describe('ModelDefinition class', function () {
|
|
|
|
it('should be able to define plain models', function (done) {
|
|
var modelBuilder = new ModelBuilder();
|
|
|
|
var User = new ModelDefinition(modelBuilder, 'User', {
|
|
name: String,
|
|
bio: ModelBuilder.Text,
|
|
approved: Boolean,
|
|
joinedAt: Date,
|
|
age: Number
|
|
});
|
|
|
|
// console.log(User.toJSON());
|
|
|
|
done();
|
|
|
|
|
|
});
|
|
|
|
|
|
it('should be able to define nesting models', function (done) {
|
|
var modelBuilder = new ModelBuilder();
|
|
|
|
var User = new ModelDefinition(modelBuilder, 'User', {
|
|
name: String,
|
|
bio: ModelBuilder.Text,
|
|
approved: Boolean,
|
|
joinedAt: Date,
|
|
age: Number,
|
|
address: {
|
|
street: String,
|
|
city: String,
|
|
zipCode: String,
|
|
state: String
|
|
}
|
|
});
|
|
|
|
// console.log(JSON.stringify(User.toJSON(), null, ' '));
|
|
|
|
done();
|
|
|
|
|
|
});
|
|
|
|
|
|
it('should be able to define referencing models', function (done) {
|
|
var modelBuilder = new ModelBuilder();
|
|
|
|
var Address = modelBuilder.define('Address', {
|
|
street: String,
|
|
city: String,
|
|
zipCode: String,
|
|
state: String
|
|
});
|
|
var User = new ModelDefinition(modelBuilder, 'User', {
|
|
name: String,
|
|
bio: ModelBuilder.Text,
|
|
approved: Boolean,
|
|
joinedAt: Date,
|
|
age: Number,
|
|
address: Address
|
|
|
|
});
|
|
|
|
// console.log(JSON.stringify(User.toJSON(), null, ' '));
|
|
|
|
done();
|
|
|
|
|
|
});
|
|
});
|
|
|