UNPKG

@arisan/data-api

Version:

The Universal Database API Gateway for CLIO's Modules

139 lines (121 loc) 4.72 kB
'use strict'; var _chai = require('chai'); var _powMongodbFixtures = require('pow-mongodb-fixtures'); var _mongodbUri = require('mongodb-uri'); var _mongodbUri2 = _interopRequireDefault(_mongodbUri); var _DataAPI = require('../DataAPI'); var _DataAPI2 = _interopRequireDefault(_DataAPI); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const request = require('supertest'); //endregion //region 2. Project Libraries /* eslint-disable import/newline-after-import, import/first */ //region 1. Platform Libraries //endregion describe('Route .../new-recorder', () => { const mongo = _mongodbUri2.default.parse(process.env.CLIO_MONGO_URL); const fixtures = (0, _powMongodbFixtures.connect)(mongo.database, { host: mongo.hosts[0].host, port: mongo.hosts[0].port, user: mongo.username, pass: mongo.password }); const dataAPI = new _DataAPI2.default(); const lightArchiveRecorder = { _id: (0, _powMongodbFixtures.createObjectId)('123456789a123456789b1231'), module: 'archive', private_ip: '10.140.0.1', port: 15925, cpu_load: 5, updated: new Date() }; const heavyArchiveRecorder = { _id: (0, _powMongodbFixtures.createObjectId)('123456789a123456789b1232'), module: 'archive', private_ip: '10.140.0.2', port: 15925, cpu_load: 10, updated: new Date() }; const lightLiveRecorder = { _id: (0, _powMongodbFixtures.createObjectId)('123456789a123456789b1233'), module: 'live', private_ip: '10.140.0.3', port: 15925, cpu_load: 5, updated: new Date() }; const heavyLiveRecorder = { _id: (0, _powMongodbFixtures.createObjectId)('123456789a123456789b1234'), module: 'live', private_ip: '10.140.0.4', port: 15925, cpu_load: 10, updated: new Date() }; const lightEventRecorder = { _id: (0, _powMongodbFixtures.createObjectId)('123456789a123456789b1235'), module: 'event', private_ip: '10.140.0.5', port: 15925, cpu_load: 5, updated: new Date() }; const heavyEventRecorder = { _id: (0, _powMongodbFixtures.createObjectId)('123456789a123456789b1236'), module: 'event', private_ip: '10.140.0.6', port: 15925, cpu_load: 10, updated: new Date() }; const cameraId = 'c00000000000000000000001'; const streamIndex = 1; before(function before(done) { this.timeout(5000); fixtures.clearAllAndLoad({ recorders: [lightArchiveRecorder, heavyArchiveRecorder, lightLiveRecorder, heavyLiveRecorder, lightEventRecorder, heavyEventRecorder] }, err => { if (err) { throw new Error(err.message); } dataAPI.initialize({ environment: 'unit-test', heartbeatInterval: 30, logLevel: 'DEBUG', mongoUrl: process.env.CLIO_MONGO_URL, port: 15925 }); dataAPI.start(done); }); }); it('GET new archive recorder should succeed', done => { request(dataAPI.expressApp).get(`/cameras/${cameraId}/streams/${streamIndex}/new-recorder/archive`).expect(200).expect(res => { _chai.assert.deepEqual({ host: lightArchiveRecorder.private_ip, port: lightArchiveRecorder.port }, res.body); }).end( /** @type function */done); }); it('GET new live recorder should succeed', done => { request(dataAPI.expressApp).get(`/cameras/${cameraId}/streams/${streamIndex}/new-recorder/live`).expect(200).expect(res => { _chai.assert.deepEqual({ host: lightLiveRecorder.private_ip, port: lightLiveRecorder.port }, res.body); }).end( /** @type function */done); }); it('GET new event recorder should succeed', done => { request(dataAPI.expressApp).get(`/cameras/${cameraId}/streams/${streamIndex}/new-recorder/event`).expect(200).expect(res => { _chai.assert.deepEqual({ host: lightEventRecorder.private_ip, port: lightEventRecorder.port }, res.body); }).end( /** @type function */done); }); it('GET should fail with invalid module', done => { request(dataAPI.expressApp).get(`/cameras/${cameraId}/streams/${streamIndex}/new-recorder/hello`).expect(400).end( /** @type function */done); }); after(done => dataAPI.stop(done)); }); //# sourceMappingURL=mountNewRecorder.spec.js.map