diff --git a/lib/helpers.js b/lib/helpers.js index ff6cd65..70fa91a 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -9,6 +9,7 @@ var helpers = exports = module.exports = { var assert = require('assert'); var request = require('supertest'); var expect = require('chai').expect; +var async = require('async'); _beforeEach.withApp = function(app) { if (app.models.User) { @@ -122,8 +123,20 @@ _beforeEach.givenModel = function(modelName, attrs, optionalHandler) { beforeEach(optionalHandler); } + function _destroy(aModel, cb) { + aModel.destroy(cb); + } + afterEach(function(done) { - this[modelKey].destroy(done); + var model = this[modelKey]; + if (Object.prototype.toString.call(model) === '[object Array]') { + async.each( + model, + _destroy.bind(this), + done); + } else { + model.destroy(done); + } }); } diff --git a/test/test.js b/test/test.js index 70b4448..9aeb5ea 100644 --- a/test/test.js +++ b/test/test.js @@ -63,6 +63,26 @@ describe('helpers', function () { }); }); + describe('helpers.beforeEach.givenModel should accept an object to initialise the model', function() { + helpers.beforeEach.givenModel('xxx-test-model', {name: 'name'}); + it('should have an xxx-test-model property', function () { + assert(this['xxx-test-model']); + assert(this['xxx-test-model'].id); + assert(this['xxx-test-model'].name === 'name'); + }); + }); + + describe('helpers.beforeEach.givenModel should accept an object array to initialise the model', function() { + helpers.beforeEach.givenModel('xxx-test-model', [{name: 'name0'}, {name: 'name1'}]); + it('should have an xxx-test-model property', function () { + assert(this['xxx-test-model']); + assert(this['xxx-test-model'][0].id); + assert(this['xxx-test-model'][0].name === 'name0'); + assert(this['xxx-test-model'][1].id); + assert(this['xxx-test-model'][1].name === 'name1'); + }); + }); + describe('whenCalledRemotely', function() { helpers.describe.staticMethod('create', function() { helpers.beforeEach.withArgs({foo: 'bar'});