base-repository
Version:
[](https://travis-ci.org/joehua87/base-repository)
131 lines (100 loc) • 3.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.expect = undefined;
exports.setUpAndTearDown = setUpAndTearDown;
exports.createRequest = createRequest;
var _co = require('co');
var _co2 = _interopRequireDefault(_co);
var _mongoose = require('mongoose');
var _mongoose2 = _interopRequireDefault(_mongoose);
var _uuid = require('uuid');
var _uuid2 = _interopRequireDefault(_uuid);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Set up a database with a uuid name
* @param initialData
*/
function setUpAndTearDown(initialData) {
before(_co2.default.wrap(regeneratorRuntime.mark(function _callee() {
var dbName, host, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, Model;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
dbName = _uuid2.default.v4();
host = 'mongodb://localhost/' + dbName;
_mongoose2.default.connect(host);
if (!initialData) {
_context.next = 34;
break;
}
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
_context.prev = 7;
_iterator = initialData[Symbol.iterator]();
case 9:
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
_context.next = 20;
break;
}
item = _step.value;
Model = _mongoose2.default.model(item.schemaName);
if (!Model) {
Model = _mongoose2.default.model(item.schemaName, item.schema);
}
_context.next = 15;
return Model.ensureIndexes();
case 15:
_context.next = 17;
return Model.create(item.entities);
case 17:
_iteratorNormalCompletion = true;
_context.next = 9;
break;
case 20:
_context.next = 26;
break;
case 22:
_context.prev = 22;
_context.t0 = _context['catch'](7);
_didIteratorError = true;
_iteratorError = _context.t0;
case 26:
_context.prev = 26;
_context.prev = 27;
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
case 29:
_context.prev = 29;
if (!_didIteratorError) {
_context.next = 32;
break;
}
throw _iteratorError;
case 32:
return _context.finish(29);
case 33:
return _context.finish(26);
case 34:
case 'end':
return _context.stop();
}
}
}, _callee, this, [[7, 22, 26, 34], [27,, 29, 33]]);
})));
after(function (done) {
_mongoose2.default.connection.db.dropDatabase();
_mongoose2.default.connection.close(done);
});
}
function createRequest(app) {
return require('supertest').agent(app.listen());
}
var chai = require('chai');
chai.use(require('chai-subset'));
chai.use(require('chai-things'));
var expect = exports.expect = chai.expect;