mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
125 lines
4.3 KiB
JavaScript
125 lines
4.3 KiB
JavaScript
'use strict';
|
|
|
|
var _ = require('lodash');
|
|
var request = require('supertest');
|
|
var should = require('should');
|
|
var language = require('../lib/language')();
|
|
|
|
describe('Treatment API', function ( ) {
|
|
this.timeout(10000);
|
|
var self = this;
|
|
|
|
var api = require('../lib/api/');
|
|
beforeEach(function (done) {
|
|
process.env.API_SECRET = 'this is my long pass phrase';
|
|
self.env = require('../env')();
|
|
self.env.settings.authDefaultRoles = 'readable';
|
|
self.env.settings.enable = ['careportal', 'api'];
|
|
this.wares = require('../lib/middleware/')(self.env);
|
|
self.app = require('express')();
|
|
self.app.enable('api');
|
|
require('../lib/bootevent')(self.env, language).boot(function booted(ctx) {
|
|
self.ctx = ctx;
|
|
self.ctx.ddata = require('../lib/data/ddata')();
|
|
self.app.use('/api', api(self.env, ctx));
|
|
done();
|
|
});
|
|
});
|
|
|
|
after(function () {
|
|
// delete process.env.API_SECRET;
|
|
});
|
|
|
|
it('post single treatments', function (done) {
|
|
|
|
self.ctx.treatments().remove({ }, function ( ) {
|
|
request(self.app)
|
|
.post('/api/treatments/')
|
|
.set('api-secret', self.env.api_secret || '')
|
|
.send({eventType: 'Meal Bolus', carbs: '30', insulin: '2.00', preBolus: '15', glucose: 100, glucoseType: 'Finger', units: 'mg/dl'})
|
|
.expect(200)
|
|
.end(function (err) {
|
|
if (err) {
|
|
done(err);
|
|
} else {
|
|
self.ctx.treatments.list({}, function (err, list) {
|
|
var sorted = _.sortBy(list, function (treatment) {
|
|
return treatment.created_at;
|
|
});
|
|
sorted.length.should.equal(2);
|
|
sorted[0].glucose.should.equal(100);
|
|
should.not.exist(sorted[0].eventTime);
|
|
sorted[0].insulin.should.equal(2);
|
|
sorted[1].carbs.should.equal(30);
|
|
|
|
done();
|
|
});
|
|
}
|
|
});
|
|
|
|
});
|
|
});
|
|
|
|
it('post a treatment array', function (done) {
|
|
self.ctx.treatments().remove({ }, function ( ) {
|
|
request(self.app)
|
|
.post('/api/treatments/')
|
|
.set('api-secret', self.env.api_secret || '')
|
|
.send([
|
|
{eventType: 'BG Check', glucose: 100, preBolus: '0', glucoseType: 'Finger', units: 'mg/dl', notes: ''}
|
|
, {eventType: 'Meal Bolus', carbs: '30', insulin: '2.00', preBolus: '15', glucose: 100, glucoseType: 'Finger', units: 'mg/dl'}
|
|
])
|
|
.expect(200)
|
|
.end(function (err) {
|
|
if (err) {
|
|
done(err);
|
|
} else {
|
|
self.ctx.treatments.list({}, function (err, list) {
|
|
list.length.should.equal(3);
|
|
should.not.exist(list[0].eventTime);
|
|
should.not.exist(list[1].eventTime);
|
|
|
|
done();
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
it('post a treatment array and dedupe', function (done) {
|
|
self.ctx.treatments().remove({ }, function ( ) {
|
|
var now = (new Date()).toISOString();
|
|
request(self.app)
|
|
.post('/api/treatments/')
|
|
.set('api-secret', self.env.api_secret || '')
|
|
.send([
|
|
{eventType: 'BG Check', glucose: 100, units: 'mg/dl', created_at: now}
|
|
, {eventType: 'BG Check', glucose: 100, units: 'mg/dl', created_at: now}
|
|
, {eventType: 'BG Check', glucose: 100, units: 'mg/dl', created_at: now}
|
|
, {eventType: 'BG Check', glucose: 100, units: 'mg/dl', created_at: now}
|
|
, {eventType: 'BG Check', glucose: 100, units: 'mg/dl', created_at: now}
|
|
, {eventType: 'BG Check', glucose: 100, units: 'mg/dl', created_at: now}
|
|
, {eventType: 'BG Check', glucose: 100, units: 'mg/dl', created_at: now}
|
|
, {eventType: 'BG Check', glucose: 100, units: 'mg/dl', created_at: now}
|
|
, {eventType: 'Meal Bolus', carbs: '30', insulin: '2.00', preBolus: '15', glucose: 100, glucoseType: 'Finger', units: 'mg/dl'}
|
|
])
|
|
.expect(200)
|
|
.end(function (err) {
|
|
if (err) {
|
|
done(err);
|
|
} else {
|
|
self.ctx.treatments.list({}, function (err, list) {
|
|
var sorted = _.sortBy(list, function (treatment) {
|
|
return treatment.created_at;
|
|
});
|
|
sorted.length.should.equal(3);
|
|
sorted[0].glucose.should.equal(100);
|
|
|
|
done();
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|