UNPKG

@arisan/data-api

Version:

The Universal Database API Gateway for CLIO's Modules

121 lines (110 loc) 2.92 kB
'use strict'; // eslint-disable-line strict /* Platform Libraries */ const request = require('supertest'); /* Project Libraries */ const app = require('../src/app'); describe('Streamers', () => { before((done) => { app.init({ logLevel: app.LOG_LEVEL.DEBUG, mongoUrl: process.env.CLIO_MONGO_URL, serverPort: process.env.CLIO_DATA_API_PORT, }); app.launch(done); }); let streamerId1; it('should register new streamer', (done) => { request(app) .post('/streamers') .send({ publicIp: '1.1.1.1', port: 11111, }) .expect(201) .expect((res) => { if (res.text.length !== 24) throw new Error('Invalid Recorder ID'); streamerId1 = res.text; }) .end(/** @type {Function} */done); }); it('should update streamer', (done) => { request(app) .put(`/streamers/${streamerId1}`) .send({ streamIds: ['streamId1'], cpuLoad: 11, mem: { load: 11, current: 11, total: 100, }, }) .expect(200) .end(/** @type {Function} */done); }); let streamerId2; it('should register second streamer', (done) => { request(app) .post('/streamers') .send({ publicIp: '2.2.2.2', port: 22222, }) .expect(201) .expect((res) => { if (res.text.length !== 24) throw new Error('Invalid Recorder ID'); streamerId2 = res.text; }) .end(/** @type {Function} */done); }); it('should update second streamer', (done) => { request(app) .put(`/streamers/${streamerId2}`) .send({ streamIds: ['streamId2'], cpuLoad: 2, mem: { load: 22, current: 22, total: 100, }, }) .expect(200) .end(/** @type {Function} */done); }); let cameraId; it('should create new camera', (done) => { request(app) .post('/cameras') .send({ projectId: 'test', publicAddress: 'c.c.c.c', webPort: 33333, }) .expect(201) .expect((res) => { if (res.text.length !== 24) throw new Error('Invalid Recorder ID'); cameraId = res.text; }) .end(/** @type {Function} */done); }); it('should only update defined fields', (done) => { request(app) .put(`/cameras/${cameraId}`) .send({ webPort: 44444, audio: { encoding: 'hifi' }, streams: { 0: { rtspUrl: 'url2' }, }, }) .expect(200) .end(/** @type {Function} */done); }); it('should get lightest streamer', (done) => { request(app) .get(`/cameras/${cameraId}/streams/0/live-info`) .expect(200) .end(done); }); });