Files
cgm-remote-monitor/tests/env.test.js
T
joracineandGitHub 2fc559e5fe Change DISPLAY_UNITS to use readENV's default value and added several tests for DISPLAY_UNITS (#5708)
readENV() was hard coding the default value of DISPLAY_UNITS, and
ignoring the default value for no particular reason. Fixed that. Also, I
added a full test suite for DISPLAY_UNITS environment settings to make
sure that it works as intended. Finally, I've added the console log for
the DISPLAY_UNITS since there's no particular reason why we log that setting
and not others.
2020-07-12 12:38:23 +03:00

156 lines
5.0 KiB
JavaScript

'use strict';
require('should');
describe('env', function () {
it( 'show the right plugins', function () {
process.env.SHOW_PLUGINS = 'iob';
process.env.ENABLE = 'iob cob';
var env = require( '../env' )();
var showPlugins = env.settings.showPlugins;
showPlugins.should.containEql( 'iob' );
showPlugins.should.containEql( 'delta' );
showPlugins.should.containEql( 'direction' );
showPlugins.should.containEql( 'upbat' );
delete process.env.SHOW_PLUGINS;
delete process.env.ENABLE;
} );
it( 'get extended settings', function () {
process.env.ENABLE = 'scaryplugin';
process.env.SCARYPLUGIN_DO_THING = 'yes';
var env = require( '../env' )();
env.settings.isEnabled( 'scaryplugin' ).should.equal( true );
//Note the camelCase
env.extendedSettings.scaryplugin.doThing.should.equal( 'yes' );
delete process.env.ENABLE;
delete process.env.SCARYPLUGIN_DO_THING;
} );
it( 'add pushover to enable if one of the env vars is set', function () {
process.env.PUSHOVER_API_TOKEN = 'abc12345';
var env = require( '../env' )();
env.settings.enable.should.containEql( 'pushover' );
env.extendedSettings.pushover.apiToken.should.equal( 'abc12345' );
delete process.env.PUSHOVER_API_TOKEN;
} );
it( 'add pushover to enable if one of the weird azure env vars is set', function () {
process.env.CUSTOMCONNSTR_PUSHOVER_API_TOKEN = 'abc12345';
var env = require( '../env' )();
env.settings.enable.should.containEql( 'pushover' );
env.extendedSettings.pushover.apiToken.should.equal( 'abc12345' );
delete process.env.PUSHOVER_API_TOKEN;
} );
it( 'readENVTruthy ', function () {
process.env.INSECURE_USE_HTTP = 'true';
var env = require( '../env' )();
env.insecureUseHttp.should.be.true();
process.env.INSECURE_USE_HTTP = 'false';
env = require( '../env' )();
env.insecureUseHttp.should.be.false();
process.env.INSECURE_USE_HTTP = 'not set ok, so use default value false';
env = require( '../env' )();
env.insecureUseHttp.should.be.false();
delete process.env.INSECURE_USE_HTTP; // unset INSECURE_USE_HTTP
process.env.SECURE_HSTS_HEADER = 'true';
env = require( '../env' )();
env.insecureUseHttp.should.be.false(); // not defined should be false
env.secureHstsHeader.should.be.true();
});
describe( 'DISPLAY_UNITS', function () {
const MMOL = 'mmol';
const MGDL = 'mg/dl';
describe ( 'mmol', function () {
it( 'mmol => mmol', function () {
process.env.DISPLAY_UNITS = MMOL;
var env = require( '../env' )();
env.settings.units.should.equal( MMOL );
delete process.env.DISPLAY_UNITS;
} );
it( 'mmol/l => mmol', function () {
process.env.DISPLAY_UNITS = 'mmol/l';
var env = require( '../env' )();
env.settings.units.should.equal( MMOL );
delete process.env.DISPLAY_UNITS;
} );
it( 'mmol/L => mmol', function () {
process.env.DISPLAY_UNITS = 'mmol/L';
var env = require( '../env' )();
env.settings.units.should.equal( MMOL );
delete process.env.DISPLAY_UNITS;
} );
it( 'MMOL => mmol', function () {
process.env.DISPLAY_UNITS = 'MMOL';
var env = require( '../env' )();
env.settings.units.should.equal( MMOL );
delete process.env.DISPLAY_UNITS;
} );
} );
describe ( 'mg/dl', function () {
it( 'mg/dl => mg/dl', function () {
process.env.DISPLAY_UNITS = MGDL;
var env = require( '../env' )();
env.settings.units.should.equal( MGDL );
delete process.env.DISPLAY_UNITS;
} );
it( 'mg/dL => mg/dl', function () {
process.env.DISPLAY_UNITS = 'mg/dL';
var env = require( '../env' )();
env.settings.units.should.equal( MGDL );
delete process.env.DISPLAY_UNITS;
} );
it( 'MG/DL => mg/dl', function () {
process.env.DISPLAY_UNITS = 'MG/DL';
var env = require( '../env' )();
env.settings.units.should.equal( MGDL );
delete process.env.DISPLAY_UNITS;
} );
it( 'mgdl => mg/dl', function () {
process.env.DISPLAY_UNITS = 'mgdl';
var env = require( '../env' )();
env.settings.units.should.equal( MGDL );
delete process.env.DISPLAY_UNITS;
} );
} );
describe ( 'default: mg/dl', function () {
it( '<random> => mg/dl', function () {
var random;
while (!random || random.toLowerCase() === MGDL)
random = [...Array(~~(Math.random()*20)+1)].map(i=>(~~(Math.random()*36)).toString(36)).join('');
process.env.DISPLAY_UNITS = random;
var env = require( '../env' )();
env.settings.units.should.equal( MGDL );
delete process.env.DISPLAY_UNITS;
} );
it( '<null> => mg/dl', function () {
delete process.env.DISPLAY_UNITS;
var env = require( '../env' )();
env.settings.units.should.equal( MGDL );
delete process.env.DISPLAY_UNITS;
} );
} );
} );
})