UNPKG

@arisan/data-api

Version:

The Universal Database API Gateway for CLIO's Modules

114 lines (96 loc) 3.74 kB
'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