不要怂,就是干,撸起袖子干!

Commit 99a77f05 by overlookmotel

Tests for Sequelize#define hooks

1 parent b1875abb
Showing with 44 additions and 0 deletions
...@@ -4322,6 +4322,50 @@ describe(Support.getTestDialectTeaser("Hooks"), function () { ...@@ -4322,6 +4322,50 @@ describe(Support.getTestDialectTeaser("Hooks"), function () {
}); });
}); });
describe('#define', function() {
before(function(done) {
this.sequelize.addHook('beforeDefine', function(attributes, options) {
options.modelName = 'bar';
options.name.plural = 'barrs';
attributes.type = DataTypes.STRING;
});
this.sequelize.addHook('afterDefine', function(factory) {
factory.options.name.singular = 'barr';
});
this.model = this.sequelize.define('foo', {name: DataTypes.STRING});
done();
});
it('beforeDefine hook can change model name', function(done) {
expect(this.model.name).to.equal('bar');
done();
});
it('beforeDefine hook can alter options', function(done) {
expect(this.model.options.name.plural).to.equal('barrs');
done();
});
it('beforeDefine hook can alter attributes', function(done) {
expect(this.model.rawAttributes.type).to.be.ok;
done();
});
it('afterDefine hook can alter options', function(done) {
expect(this.model.options.name.singular).to.equal('barr');
done();
});
after(function(done) {
this.sequelize.options.hooks = {};
this.sequelize.modelManager.removeDAO(this.model);
done();
});
});
describe('universal', function() { describe('universal', function() {
beforeEach(function(done) { beforeEach(function(done) {
this.sequelize.addHook('beforeFind', function(options) { this.sequelize.addHook('beforeFind', function(options) {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!