@arisan/data-api
Version:
The Universal Database API Gateway for CLIO's Modules
117 lines (102 loc) • 4.3 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 .../event-recorders', () => {
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 triggeringCameraId = 'c00000000000000000000001';
const triggeringStreamIndex = 1;
const triggeredRecordingCameraId = 'c00000000000000000000002';
const triggeredRecordingStreamIndex = 2;
const triggeredIdleCameraId = 'c00000000000000000000003';
const triggeredIdleStreamIndex = 3;
const activatedBrokerId = 'b00000000000000000000001';
const cleanBrokerId = 'b00000000000000000000002';
before(function before(done) {
this.timeout(5000);
fixtures.clearAllAndLoad({
cameras: [{
_id: (0, _powMongodbFixtures.createObjectId)(triggeringCameraId),
active_stream_index: triggeringStreamIndex
}, {
_id: (0, _powMongodbFixtures.createObjectId)(triggeredRecordingCameraId),
active_stream_index: triggeredRecordingStreamIndex,
triggering_camera_id: (0, _powMongodbFixtures.createObjectId)(triggeringCameraId)
}, {
_id: (0, _powMongodbFixtures.createObjectId)(triggeredIdleCameraId),
active_stream_index: triggeredIdleStreamIndex,
triggering_camera_id: (0, _powMongodbFixtures.createObjectId)(triggeringCameraId)
}],
recorders: [{
_id: (0, _powMongodbFixtures.createObjectId)(activatedBrokerId),
module: 'broker',
private_ip: '10.140.0.1',
port: 15925,
stream_infos: [{
id: `${triggeredRecordingCameraId}/${triggeredRecordingStreamIndex}`,
live: true,
archive: true,
event: false
}],
cpu_load: 5,
updated: new Date()
}, {
_id: (0, _powMongodbFixtures.createObjectId)(cleanBrokerId),
module: 'broker',
private_ip: '10.140.0.2',
port: 15926,
stream_infos: [],
cpu_load: 0,
updated: new Date()
}]
}, err => {
if (err) {
throw new Error(err.message);
}
dataAPI.initialize({
environment: 'unit-test',
heartbeatInterval: 10,
logLevel: 'DEBUG',
mongoUrl: process.env.CLIO_MONGO_URL,
port: 15925
});
dataAPI.start(done);
});
});
it('GET event broker should succeed', done => {
request(dataAPI.expressApp).get(`/cameras/${triggeringCameraId}/streams/${triggeringStreamIndex}/event-recorders`).expect(200).expect(res => {
_chai.assert.deepEqual({
recorderInfo: [{
host: '10.140.0.1',
port: 15925,
cameraId: triggeredRecordingCameraId,
streamIndex: triggeredRecordingStreamIndex
}, {
host: '10.140.0.2',
port: 15926,
cameraId: triggeredIdleCameraId,
streamIndex: triggeredIdleStreamIndex
}]
}, res.body);
}).end( /** @type function */done);
});
after(done => dataAPI.stop(done));
});
//# sourceMappingURL=mountEventRecorders.spec.js.map