loopback/test/app.test.js

115 lines
3.0 KiB
JavaScript

describe('app', function() {
describe('app.model(Model)', function() {
it("Expose a `Model` to remote clients", function() {
var app = loopback();
var memory = loopback.createDataSource({connector: loopback.Memory});
var Color = memory.createModel('color', {name: String});
app.model(Color);
assert.equal(app.models().length, 1);
});
});
describe('app.model(name, properties, options)', function () {
it('Sugar for defining a fully built model', function () {
var app = loopback();
app.boot({
app: {port: 3000, host: '127.0.0.1'},
dataSources: {
db: {
connector: 'memory'
}
}
});
app.model('foo', {
dataSource: 'db'
});
var Foo = app.models.foo;
var f = new Foo;
assert(f instanceof loopback.Model);
});
})
// describe('app.models()', function() {
// it("Get the app's exposed models", function() {
// var app = loopback();
// var models = app.models();
// models.forEach(function(m) {
// console.log(m.modelName);
// })
// assert.equal(models.length, 1);
// assert.equal(models[0].modelName, 'color');
// });
// });
describe('app.boot([options])', function () {
beforeEach(function () {
var app = this.app = loopback();
app.boot({
app: {
port: 3000,
host: '127.0.0.1'
},
models: {
'foo-bar-bat-baz': {
options: {
plural: 'foo-bar-bat-bazzies'
},
dataSource: 'the-db'
}
},
dataSources: {
'the-db': {
connector: 'memory'
}
}
});
});
it('Load configuration', function () {
assert.equal(this.app.get('port'), 3000);
assert.equal(this.app.get('host'), '127.0.0.1');
});
it('Instantiate models', function () {
assert(app.models);
assert(app.models.FooBarBatBaz);
assert(app.models.fooBarBatBaz);
assertValidDataSource(app.models.FooBarBatBaz.dataSource);
assert.isFunc(app.models.FooBarBatBaz, 'find');
assert.isFunc(app.models.FooBarBatBaz, 'create');
});
it('Attach models to data sources', function () {
assert.equal(app.models.FooBarBatBaz.dataSource, app.dataSources.theDb);
});
it('Instantiate data sources', function () {
assert(app.dataSources);
assert(app.dataSources.theDb);
assertValidDataSource(app.dataSources.theDb);
assert(app.dataSources.TheDb);
});
});
describe('app.boot(appRootDir)', function () {
it('Load config files', function () {
var app = loopback();
app.boot(require('path').join(__dirname, 'fixtures', 'simple-app'));
assert(app.models.foo);
assert(app.models.Foo);
assert(app.models.Foo.dataSource);
assert.isFunc(app.models.Foo, 'find');
assert.isFunc(app.models.Foo, 'create');
});
});
});