all files / lib/routers/ mountVideoInfo.spec.js

97.14% Statements 34/35
83.33% Branches 5/6
100% Functions 2/2
96.77% Lines 30/31
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95                                                                                                                                 
'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 .../video-info', () => {
        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 id = '123456789a123456789b1234';
        const indexWithoutVideoInfo = 0;
        const indexWithVideoInfo = 1;
        const dummyVideoInfoDB = {
                index: 1,
                start_time: 1482375835000,
                end_time: 1482375845000,
                bucket_name: 'bucket-name',
                object_name: 'object/name'
        };
        const dummyVideoInfo2REST = {
                index: 2,
                startTime: 2482375835000,
                endTime: 2482375845000,
                bucketName: 'bucket-name',
                objectName: 'object/name'
        };
 
        before(function before(done) {
                this.timeout(5000);
                fixtures.clearAllAndLoad({
                        cameras: [{
                                _id: (0, _powMongodbFixtures.createObjectId)(id),
                                streams: {
                                        0: {},
                                        1: {
                                                video_info: [dummyVideoInfoDB]
                                        }
                                }
                        }]
                }, err => {
                        Iif (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('PUT video info should succeed', done => {
                request(dataAPI.expressApp).put(`/cameras/${ id }/streams/${ indexWithVideoInfo }/video-info`).send(dummyVideoInfo2REST).expect(200).end( /** @type function */done);
        });
 
        it('GET empty video info array should succeed', done => {
                request(dataAPI.expressApp).get(`/cameras/${ id }/streams/${ indexWithoutVideoInfo }/video-info/-1`).expect(200).expect(res => _chai.assert.deepEqual({ index: 0 }, res.body)).end( /** @type function */done);
        });
 
        it('GET second video info should succeed', done => {
                request(dataAPI.expressApp).get(`/cameras/${ id }/streams/${ indexWithVideoInfo }/video-info/-1`).expect(200).expect(res => _chai.assert.deepEqual(dummyVideoInfo2REST, res.body)).end( /** @type function */done);
        });
 
        after(done => dataAPI.stop(done));
});
//# sourceMappingURL=mountVideoInfo.spec.js.map