beforeDestroy.destroy.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. var assert = require('assert');
  2. var Waterline = require('../../../lib/waterline');
  3. describe('Before Destroy Lifecycle Callback ::', function() {
  4. describe('Destroy ::', function() {
  5. var person;
  6. var status = false;
  7. before(function(done) {
  8. var waterline = new Waterline();
  9. var Model = Waterline.Model.extend({
  10. identity: 'user',
  11. datastore: 'foo',
  12. primaryKey: 'id',
  13. attributes: {
  14. id: {
  15. type: 'number'
  16. },
  17. name: {
  18. type: 'string'
  19. }
  20. },
  21. beforeDestroy: function(criteria, cb) {
  22. status = true;
  23. cb();
  24. }
  25. });
  26. waterline.registerModel(Model);
  27. // Fixture Adapter Def
  28. var adapterDef = { destroy: function(con, query, cb) { return cb(null, query); }};
  29. var connections = {
  30. 'foo': {
  31. adapter: 'foobar'
  32. }
  33. };
  34. waterline.initialize({ adapters: { foobar: adapterDef }, datastores: connections }, function(err, orm) {
  35. if (err) {
  36. return done(err);
  37. }
  38. person = orm.collections.user;
  39. return done();
  40. });
  41. });
  42. it('should run beforeDestroy', function(done) {
  43. person.destroy({ name: 'test' }, function(err) {
  44. if (err) {
  45. return done(err);
  46. }
  47. assert.equal(status, true);
  48. return done();
  49. });
  50. });
  51. });
  52. });