@arisan/data-api
Version:
The Universal Database API Gateway for CLIO's Modules
121 lines (110 loc) • 2.92 kB
JavaScript
; // 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);
});
});