UNPKG

base-repository

Version:

[![Build Status](https://travis-ci.org/joehua87/base-repository.svg?branch=master)](https://travis-ci.org/joehua87/base-repository)

131 lines (100 loc) 3.38 kB
'use strict'; 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;