mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
Merge branch 'api-insert-delete-test' of https://github.com/jpcunningh/cgm-remote-monitor into 201812_needs_testing
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash');
|
||||
var request = require('supertest');
|
||||
var should = require('should');
|
||||
var language = require('../lib/language')();
|
||||
|
||||
describe('Devicestatus 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/server/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 a devicestatus, query, delete, verify gone', function (done) {
|
||||
// insert a devicestatus - needs to be unique from example data
|
||||
console.log('Inserting devicestatus entry');
|
||||
request(self.app)
|
||||
.post('/api/devicestatus/')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.send({
|
||||
device: 'xdripjs://rigName'
|
||||
, xdripjs: {
|
||||
state: 6
|
||||
, stateString: 'OK'
|
||||
, txStatus: 0
|
||||
, txStatusString: 'OK'
|
||||
}
|
||||
, created_at: '2018-12-16T01:00:52Z'
|
||||
})
|
||||
.expect(200)
|
||||
.end(function (err) {
|
||||
if (err) {
|
||||
done(err);
|
||||
} else {
|
||||
// make sure devicestatus was inserted successfully
|
||||
console.log('Ensuring devicestatus entry was inserted successfully');
|
||||
request(self.app)
|
||||
.get('/api/devicestatus/')
|
||||
.query('find[created_at][$gte]=2018-12-16')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.expect(200)
|
||||
.expect(function (response) {
|
||||
response.body[0].xdripjs.state.should.equal(6);
|
||||
})
|
||||
.end(function (err) {
|
||||
if (err) {
|
||||
done(err);
|
||||
} else {
|
||||
// delete the treatment
|
||||
console.log('Deleting test treatment entry');
|
||||
request(self.app)
|
||||
.delete('/api/devicestatus/')
|
||||
.query('find[created_at][$gte]=2018-12-16')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.expect(200)
|
||||
.end(function (err) {
|
||||
if (err) {
|
||||
done(err);
|
||||
} else {
|
||||
// make sure it was deleted
|
||||
console.log('Testing if devicestatus was deleted');
|
||||
request(self.app)
|
||||
.get('/api/devicestatus/')
|
||||
.query('find[created_at][$lte]=2018-12-16')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.expect(200)
|
||||
.expect(function (response) {
|
||||
response.body.length.should.equal(0);
|
||||
})
|
||||
.end(done);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
+85
-29
@@ -8,19 +8,19 @@ require('should');
|
||||
|
||||
describe('Entries REST api', function ( ) {
|
||||
var entries = require('../lib/api/entries/');
|
||||
var self = this;
|
||||
|
||||
this.timeout(10000);
|
||||
before(function (done) {
|
||||
var env = require('../env')( );
|
||||
env.settings.authDefaultRoles = 'readable';
|
||||
this.wares = require('../lib/middleware/')(env);
|
||||
this.archive = null;
|
||||
this.app = require('express')( );
|
||||
this.app.enable('api');
|
||||
var self = this;
|
||||
bootevent(env, language).boot(function booted (ctx) {
|
||||
self.env = require('../env')( );
|
||||
self.env.settings.authDefaultRoles = 'readable';
|
||||
self.wares = require('../lib/middleware/')(self.env);
|
||||
self.archive = null;
|
||||
self.app = require('express')( );
|
||||
self.app.enable('api');
|
||||
bootevent(self.env, language).boot(function booted (ctx) {
|
||||
self.app.use('/', entries(self.app, self.wares, ctx));
|
||||
self.archive = require('../lib/server/entries')(env, ctx);
|
||||
self.archive = require('../lib/server/entries')(self.env, ctx);
|
||||
|
||||
var creating = load('json');
|
||||
creating.push({type: 'sgv', sgv: 100, date: Date.now()});
|
||||
@@ -31,15 +31,15 @@ describe('Entries REST api', function ( ) {
|
||||
beforeEach(function (done) {
|
||||
var creating = load('json');
|
||||
creating.push({type: 'sgv', sgv: 100, date: Date.now()});
|
||||
this.archive.create(creating, done);
|
||||
self.archive.create(creating, done);
|
||||
});
|
||||
|
||||
afterEach(function (done) {
|
||||
this.archive( ).remove({ }, done);
|
||||
self.archive( ).remove({ }, done);
|
||||
});
|
||||
|
||||
after(function (done) {
|
||||
this.archive( ).remove({ }, done);
|
||||
self.archive( ).remove({ }, done);
|
||||
});
|
||||
|
||||
// keep this test pinned at or near the top in order to validate all
|
||||
@@ -48,7 +48,7 @@ describe('Entries REST api', function ( ) {
|
||||
// function callback logic in entries.js.
|
||||
it('gets requested number of entries', function (done) {
|
||||
var count = 30;
|
||||
request(this.app)
|
||||
request(self.app)
|
||||
.get('/entries.json?find[dateString][$gte]=2014-07-19&count=' + count)
|
||||
.expect(200)
|
||||
.end(function (err, res) {
|
||||
@@ -59,7 +59,7 @@ describe('Entries REST api', function ( ) {
|
||||
|
||||
it('gets default number of entries', function (done) {
|
||||
var defaultCount = 10;
|
||||
request(this.app)
|
||||
request(self.app)
|
||||
.get('/entries/sgv.json?find[dateString][$gte]=2014-07-19&find[dateString][$lte]=2014-07-20')
|
||||
.expect(200)
|
||||
.end(function (err, res) {
|
||||
@@ -70,7 +70,7 @@ describe('Entries REST api', function ( ) {
|
||||
|
||||
it('gets entries in right order', function (done) {
|
||||
var defaultCount = 10;
|
||||
request(this.app)
|
||||
request(self.app)
|
||||
.get('/entries/sgv.json?find[dateString][$gte]=2014-07-19&find[dateString][$lte]=2014-07-20')
|
||||
.expect(200)
|
||||
.end(function (err, res) {
|
||||
@@ -88,7 +88,7 @@ describe('Entries REST api', function ( ) {
|
||||
|
||||
|
||||
it('/echo/ api shows query', function (done) {
|
||||
request(this.app)
|
||||
request(self.app)
|
||||
.get('/echo/entries/sgv.json?find[dateString][$gte]=2014-07-19&find[dateString][$lte]=2014-07-20')
|
||||
.expect(200)
|
||||
.end(function (err, res) {
|
||||
@@ -102,7 +102,7 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
|
||||
it('/slice/ can slice time', function (done) {
|
||||
var app = this.app;
|
||||
var app = self.app;
|
||||
request(app)
|
||||
.get('/slice/entries/dateString/sgv/2014-07.json?count=20')
|
||||
.expect(200)
|
||||
@@ -114,7 +114,7 @@ describe('Entries REST api', function ( ) {
|
||||
|
||||
|
||||
it('/times/echo can describe query', function (done) {
|
||||
var app = this.app;
|
||||
var app = self.app;
|
||||
request(app)
|
||||
.get('/times/echo/2014-07/.*T{00..05}:.json?count=20&find[sgv][$gte]=160')
|
||||
.expect(200)
|
||||
@@ -127,7 +127,7 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
|
||||
it('/slice/ can slice with multiple prefix', function (done) {
|
||||
var app = this.app;
|
||||
var app = self.app;
|
||||
request(app)
|
||||
.get('/slice/entries/dateString/sgv/2014-07-{17..20}.json?count=20')
|
||||
.expect(200)
|
||||
@@ -138,7 +138,7 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
|
||||
it('/slice/ can slice time with prefix and no results', function (done) {
|
||||
var app = this.app;
|
||||
var app = self.app;
|
||||
request(app)
|
||||
.get('/slice/entries/dateString/sgv/1999-07.json?count=20&find[sgv][$lte]=401')
|
||||
.expect(200)
|
||||
@@ -149,7 +149,7 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
|
||||
it('/times/ can get modal times', function (done) {
|
||||
var app = this.app;
|
||||
var app = self.app;
|
||||
request(app)
|
||||
.get('/times/2014-07-/{0..30}T.json?')
|
||||
.expect(200)
|
||||
@@ -160,7 +160,7 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
|
||||
it('/times/ can get modal minutes and times', function (done) {
|
||||
var app = this.app;
|
||||
var app = self.app;
|
||||
request(app)
|
||||
.get('/times/20{14..15}-07/T{09..10}.json?')
|
||||
.expect(200)
|
||||
@@ -170,7 +170,7 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
});
|
||||
it('/times/ can get multiple prefixen and modal minutes and times', function (done) {
|
||||
var app = this.app;
|
||||
var app = self.app;
|
||||
request(app)
|
||||
.get('/times/20{14..15}/T.*:{00..60}.json?')
|
||||
.expect(200)
|
||||
@@ -181,7 +181,7 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
|
||||
it('/entries/current.json', function (done) {
|
||||
request(this.app)
|
||||
request(self.app)
|
||||
.get('/entries/current.json')
|
||||
.expect(200)
|
||||
.end(function (err, res) {
|
||||
@@ -192,8 +192,8 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
|
||||
it('/entries/:id', function (done) {
|
||||
var app = this.app;
|
||||
this.archive.list({count: 1}, function(err, records) {
|
||||
var app = self.app;
|
||||
self.archive.list({count: 1}, function(err, records) {
|
||||
var currentId = records.pop()._id.toString();
|
||||
request(app)
|
||||
.get('/entries/'+currentId+'.json')
|
||||
@@ -207,7 +207,7 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
|
||||
it('/entries/:model', function (done) {
|
||||
var app = this.app;
|
||||
var app = self.app;
|
||||
request(app)
|
||||
.get('/entries/sgv/.json?count=10&find[dateString][$gte]=2014')
|
||||
.expect(200)
|
||||
@@ -218,7 +218,7 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
|
||||
it('disallow POST by readable /entries/preview', function (done) {
|
||||
request(this.app)
|
||||
request(self.app)
|
||||
.post('/entries/preview.json')
|
||||
.send(load('json'))
|
||||
.expect(401)
|
||||
@@ -229,7 +229,7 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
|
||||
it('disallow deletes unauthorized', function (done) {
|
||||
var app = this.app;
|
||||
var app = self.app;
|
||||
|
||||
request(app)
|
||||
.delete('/entries/sgv?find[dateString][$gte]=2014-07-19&find[dateString][$lte]=2014-07-20')
|
||||
@@ -249,4 +249,60 @@ describe('Entries REST api', function ( ) {
|
||||
});
|
||||
});
|
||||
|
||||
it('post an entry, query, delete, verify gone', function (done) {
|
||||
// insert a glucose entry - needs to be unique from example data
|
||||
console.log('Inserting glucose entry')
|
||||
request(self.app)
|
||||
.post('/entries/')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.send({
|
||||
"type": "sgv", "sgv": "199", "dateString": "2014-07-20T00:44:15.000-07:00"
|
||||
, "date": 1405791855000, "device": "dexcom", "direction": "NOT COMPUTABLE"
|
||||
})
|
||||
.expect(200)
|
||||
.end(function (err) {
|
||||
if (err) {
|
||||
done(err);
|
||||
} else {
|
||||
// make sure treatment was inserted successfully
|
||||
console.log('Ensuring glucose entry was inserted successfully');
|
||||
request(self.app)
|
||||
.get('/entries.json?find[dateString][$gte]=2014-07-20&count=100')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.expect(200)
|
||||
.expect(function (response) {
|
||||
response.body[0].sgv.should.equal('199');
|
||||
})
|
||||
.end(function (err) {
|
||||
if (err) {
|
||||
done(err);
|
||||
} else {
|
||||
// delete the glucose entry
|
||||
console.log('Deleting test glucose entry');
|
||||
request(self.app)
|
||||
.delete('/entries.json?find[dateString][$gte]=2014-07-20&count=100')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.expect(200)
|
||||
.end(function (err) {
|
||||
if (err) {
|
||||
done(err);
|
||||
} else {
|
||||
// make sure it was deleted
|
||||
console.log('Testing if glucose entry was deleted');
|
||||
request(self.app)
|
||||
.get('/entries.json?find[dateString][$gte]=2014-07-20&count=100')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.expect(200)
|
||||
.expect(function (response) {
|
||||
response.body.length.should.equal(0);
|
||||
})
|
||||
.end(done);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -125,4 +125,59 @@ describe('Treatment API', function ( ) {
|
||||
});
|
||||
});
|
||||
});
|
||||
it('post a treatment, query, delete, verify gone', function (done) {
|
||||
// insert a treatment - needs to be unique from example data
|
||||
console.log('Inserting treatment entry');
|
||||
request(self.app)
|
||||
.post('/api/treatments/')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.send({eventType: 'Meal Bolus', carbs: '99', insulin: '2.00', preBolus: '15', glucose: 100, glucoseType: 'Finger', units: 'mg/dl'})
|
||||
.expect(200)
|
||||
.end(function (err) {
|
||||
if (err) {
|
||||
done(err);
|
||||
} else {
|
||||
// make sure treatment was inserted successfully
|
||||
console.log('Ensuring treatment entry was inserted successfully');
|
||||
request(self.app)
|
||||
.get('/api/treatments/')
|
||||
.query('find[carbs]=99')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.expect(200)
|
||||
.expect(function (response) {
|
||||
response.body[0].carbs.should.equal(99);
|
||||
})
|
||||
.end(function (err) {
|
||||
if (err) {
|
||||
done(err);
|
||||
} else {
|
||||
// delete the treatment
|
||||
console.log('Deleting test treatment entry');
|
||||
request(self.app)
|
||||
.delete('/api/treatments/')
|
||||
.query('find[carbs]=99')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.expect(200)
|
||||
.end(function (err) {
|
||||
if (err) {
|
||||
done(err);
|
||||
} else {
|
||||
// make sure it was deleted
|
||||
console.log('Testing if entry was deleted');
|
||||
request(self.app)
|
||||
.get('/api/treatments/')
|
||||
.query('find[carbs]=99')
|
||||
.set('api-secret', self.env.api_secret || '')
|
||||
.expect(200)
|
||||
.expect(function (response) {
|
||||
response.body.length.should.equal(0);
|
||||
})
|
||||
.end(done);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user