@arisan/data-api
Version:
The Universal Database API Gateway for CLIO's Modules
114 lines (96 loc) • 3.74 kB
JavaScript
'use strict';
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 }; }
//endregion
//region K. Constants
/* eslint-disable import/first */
//region 1. Platform Libraries
const request = require('supertest');
//endregion
//region 2. Project Libraries
//endregion
describe('Route /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 nonexistentRecorderId = '123456789a123456789b1231';
before(function before(done) {
this.timeout(5000);
fixtures.clear('recorders', err => {
if (err) {
throw new Error(err.message);
}
dataAPI.initialize({
environment: 'unit-test',
heartbeatInterval: 10,
logLevel: 'ERROR',
mongoUrl: process.env.CLIO_MONGO_URL,
port: 15925
});
dataAPI.start(done);
});
});
let recorderID;
describe('POST', () => {
it('should create new recorder', done => {
request(dataAPI.expressApp).post('/recorders').send({
module: 'broker',
port: 15925,
publicIp: '18.18.18.18'
}).expect(201).expect(res => {
if (res.text.length !== 24) {
throw new Error('Invalid Recorder ID');
}
recorderID = res.text;
}).end( /** @type function */done);
});
});
describe('PUT', () => {
it('should update existing recorder', done => {
request(dataAPI.expressApp).put(`/recorders/${recorderID}`).send({
cpuUsagePercentage: 2.22,
memoryUsagePercentage: 22.22,
hddUsageKB: 2222,
hddTotalKB: 22222,
netUploadBytesPerSecond: 2222,
netDownloadBytesPerSecond: 2222,
streamInfos: [{
id: '567da12ef0be2400011a2843/1',
archiveStarted: true,
liveStarted: true,
eventStarted: true
}]
}).expect(200).end( /** @type function */done);
});
it('should fail if missing information', done => {
request(dataAPI.expressApp).put(`/recorders/${recorderID}`).send({
cpuUsagePercentage: 2.22,
memoryUsagePercentage: 22.22,
hddTotalKB: 22222,
netUploadBytesPerSecond: 2222,
netDownloadBytesPerSecond: 2222
}).expect(400).end( /** @type function */done);
});
it('should fail if nonexistent recorder', done => {
request(dataAPI.expressApp).put(`/recorders/${nonexistentRecorderId}`).send({
cpuUsagePercentage: 2.22,
memoryUsagePercentage: 22.22,
hddUsageKB: 2222,
hddTotalKB: 22222,
netUploadBytesPerSecond: 2222,
netDownloadBytesPerSecond: 2222
}).expect(500).end( /** @type function */done);
});
});
after(done => dataAPI.stop(done));
});
//# sourceMappingURL=mountRecorders.spec.js.map