@arisan/data-api
Version:
The Universal Database API Gateway for CLIO's Modules
139 lines (121 loc) • 4.72 kB
JavaScript
;
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