loopback-datasource-juggler/test/plugins.test.js

44 lines
1.2 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 Memory = require('../lib/connectors/memory');
var plugins = jdb.plugins;
describe('Model class', function () {
it('should define a plugin', function() {
plugins.define('example', function(Model, options) {
Model.prototype.example = function() {
return options;
};
});
})
it('should apply plugin', function(done) {
var memory = new DataSource({connector: Memory});
var Item = memory.createModel('Item', { name: 'string' }, {
plugins: { timestamps: true }
});
Item.plugin('example', { foo: 'bar' });
var def = memory.getModelDefinition('Item');
var json = def.toJSON();
var properties = json.properties;
properties.createdAt.should.eql({ type: 'Date' });
properties.updatedAt.should.eql({ type: 'Date' });
Item.create({ name: 'Item 1' }, function(err, inst) {
inst.createdAt.should.be.a.date;
inst.updatedAt.should.be.a.date;
inst.example().should.eql({ foo: 'bar' });
done();
});
});
});