afterDestroy.destroy.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. var assert = require('assert');
  2. var Waterline = require('../../../lib/waterline');
  3. describe('After Destroy Lifecycle Callback ::', function() {
  4. describe('Destroy ::', function() {
  5. var person;
  6. var status;
  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. fetchRecordsOnCreate: true,
  14. fetchRecordsOnDestroy: true,
  15. attributes: {
  16. id: {
  17. type: 'number'
  18. },
  19. name: {
  20. type: 'string'
  21. }
  22. },
  23. afterDestroy: function(destroyedRecord, cb) {
  24. status = destroyedRecord.status;
  25. cb();
  26. }
  27. });
  28. waterline.registerModel(Model);
  29. // Fixture Adapter Def
  30. var adapterDef = {
  31. destroy: function(con, query, cb) { return cb(undefined, [{ status: true, id: 1 }]); },
  32. create: function(con, query, cb) { return cb(undefined, { status: true, id: 1 }); }
  33. };
  34. var connections = {
  35. 'foo': {
  36. adapter: 'foobar'
  37. }
  38. };
  39. waterline.initialize({ adapters: { foobar: adapterDef }, datastores: connections }, function(err, orm) {
  40. if (err) {
  41. return done(err);
  42. }
  43. person = orm.collections.user;
  44. return done();
  45. });
  46. });
  47. it('should run afterDestroy', function(done) {
  48. person.destroy({ name: 'test' }, function(err) {
  49. if (err) {
  50. return done(err);
  51. }
  52. assert.equal(status, true);
  53. return done();
  54. });
  55. });
  56. });
  57. });