Skip to content

Commit

Permalink
check the recieved flag to see if it was received
Browse files Browse the repository at this point in the history
  • Loading branch information
jasoncalabrese committed Dec 24, 2015
1 parent f83dc67 commit 354707b
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 3 deletions.
30 changes: 27 additions & 3 deletions lib/plugins/openaps.js
Expand Up @@ -113,6 +113,11 @@ function init() {
, ops.enacted.mealAssist ? ' <b>Meal Assist:</b> ' + ops.enacted.mealAssist : ''
].join('')
});
} else if ('notenacted' === prop.status.code) {
info.push({
label: timeAt(false, sbx) + timeFormat(ops.notEnactedTime, sbx)
, value: 'Not Enacted'
});
} else if ('looping' === prop.status.code) {
addSuggestion();
} else if (ops.lastLoopTime) {
Expand Down Expand Up @@ -200,13 +205,18 @@ function checkLoopStatus (openapsStatus, sbx) {
};

if (openapsStatus) {
var enactedLast = openapsStatus.openaps.enacted && moment(openapsStatus.openaps.enacted.timestamp);
var enactedLast = openapsStatus.openaps.enacted && openapsStatus.openaps.enacted.recieved && moment(openapsStatus.openaps.enacted.timestamp);
var notEnactedLast = openapsStatus.openaps.enacted && !openapsStatus.openaps.enacted.recieved && moment(openapsStatus.openaps.enacted.timestamp);
var suggestedLast = openapsStatus.openaps.suggested && moment(openapsStatus.openaps.suggested.timestamp);

var last = moment(openapsStatus.mills);
var recent = moment(sbx.time).subtract(15, 'minutes');

if (enactedLast && enactedLast.isAfter(recent)) {
if (notEnactedLast && notEnactedLast.isAfter(recent)) {
status.symbol = 'x';
status.code = 'notenacted';
status.label = 'Not Enacted';
} else if (enactedLast && enactedLast.isAfter(recent)) {
status.symbol = '⌁';
status.code = 'enacted';
status.label = 'Enacted';
Expand All @@ -233,15 +243,29 @@ function prepOps (prop, sbx) {
var pump = prop.pump;
var suggested = prop.openaps && prop.openaps.suggested;
var suggestedTime = suggested && moment(suggested.timestamp);
var enacted = prop.openaps && prop.openaps.enacted;

var enacted = null;
var notEnacted = null;

if (prop.openaps && prop.openaps.enacted && prop.openaps.enacted.recieved) {
enacted = prop.openaps.enacted;
}

if (prop.openaps && !prop.openaps.enacted && prop.openaps.enacted.recieved) {
notEnacted = prop.openaps.enacted;
}

var enactedTime = enacted && moment(enacted.timestamp);
var notEnactedTime = notEnacted && moment(notEnacted.timestamp);

return {
recent: recent
, suggested: suggested
, suggestedTime: suggestedTime
, enacted: enacted
, enactedTime: enactedTime
, notEnacted: enacted
, notEnactedTime: enactedTime
, iob: iob
, iobTime: iob && moment(iob.timestamp)
, pump: pump
Expand Down
28 changes: 28 additions & 0 deletions tests/openaps.test.js
Expand Up @@ -101,6 +101,34 @@ describe('openaps', function ( ) {

});

it('check the recieved flag to see if it was received', function (done) {
var ctx = {
settings: {
units: 'mg/dl'
}
, notifications: require('../lib/notifications')(env, ctx)
};

ctx.notifications.initRequests();

var notStatus = _.cloneDeep(status);
notStatus.openaps.enacted.recieved = false;
var sbx = require('../lib/sandbox')().clientInit(ctx, now, {devicestatus: [notStatus]});

sbx.offerProperty = function mockedOfferProperty (name, setter) {
name.should.equal('openaps');
var result = setter();
should.exist(result);
result.status.symbol.should.equal('x');
result.status.code.should.equal('notenacted');
should.ok(result.status.when.isSame(now));
done();
};

openaps.setProperties(sbx);

});

it('generate an alart for a stuck loop', function (done) {
var ctx = {
settings: {
Expand Down

0 comments on commit 354707b

Please sign in to comment.