loopback-datasource-juggler/test/hookable_test.coffee

94 lines
2.2 KiB
CoffeeScript

juggling = require('../index')
Schema = juggling.Schema
AbstractClass = juggling.AbstractClass
Hookable = juggling.Hookable
require('./spec_helper').init module.exports
schema = new Schema 'memory'
User = schema.define 'User',
email: String
name: String
password: String
state: String
age: Number
gender: String
domain: String
pendingPeriod: Number
createdByAdmin: Boolean
it "should trigger after initialize", (test)->
User.afterInitialize = ()->
User.afterInitialize = null
test.done()
user = new User
it "should trigger before create", (test)->
User.beforeCreate = ()->
User.beforeCreate = null
test.done()
User.create {}, ()-> test.ok "saved"
it "should trigger after create", (test) ->
User.afterCreate = (next) ->
User.afterCreate = null
next()
User.create {}, ->
test.ok "saved"
test.done()
it 'should trigger before save', (test) ->
test.expect(3)
User.beforeSave = (next) ->
User.beforeSave = null
@name = 'mr. ' + @name
next()
user = new User name: 'Jonathan'
user.save ->
test.equals User.schema.adapter.cache.User[user.id].name, user.name
test.equals user.name, 'mr. Jonathan'
test.ok 'saved'
test.done()
it 'should trigger after save', (test)->
User.afterSave = (next)->
User.afterSave = null
next()
user = new User
user.save ->
test.ok "saved"
test.done()
it "should trigger before update", (test) ->
User.beforeUpdate = ()->
User.beforeUpdate = null
test.done()
User.create {}, (err, user)->
user.updateAttributes {email:"1@1.com"}, () -> test.ok "updated"
it "should trigger after update", (test) ->
User.afterUpdate = ()->
User.afterUpdate = null
test.done()
User.create {}, (err, user)->
user.updateAttributes {email:"1@1.com"}, ()-> test.ok "updated"
it "should trigger before destroy", (test)->
User.beforeDestroy = ()->
User.beforeDestroy = null
test.done()
User.create {}, (err, user)->
user.destroy()
it "should trigger after destroy", (test)->
User.afterDestroy = ()->
User.afterDestroy = null
test.done()
User.create {}, (err, user)->
user.destroy()