flipit
Version:
Feature flagging for NodeJS
54 lines (43 loc) • 1.68 kB
JavaScript
var Y = require('yuitest'),
Assert = Y.Assert,
helper = require('./helper'),
path = require('path');
Y.TestRunner.add(new Y.TestCase({
"name": "Functional Test Index",
"setUp": function () {
this.app = require('../index');
this.featureFile = helper.generateTestFile();
},
"tearDown": function () {
this.watcher.close();
helper.destroyTestFile(this.featureFile);
},
"load a set of feature flags from file": function () {
var me = this,
testFeatures = helper.loadDataFromFile(me.featureFile);
me.watcher = me.app.load(me.featureFile, function () {
me.resume(function () {
Object.keys(testFeatures).forEach(function (feature) {
if (testFeatures.hasOwnProperty(feature)) {
Assert.areSame(testFeatures[feature], me.app.isEnabled(feature),
'The feature "' + feature + '" is enabled by file loading.');
}
});
});
});
me.wait(1000);
},
"load a set of features flags from file with no update callback": function () {
var me = this,
testFeatures = helper.loadDataFromFile(me.featureFile);
me.watcher = me.app.load(me.featureFile);
me.wait(function() {
Object.keys(testFeatures).forEach(function (feature) {
if (testFeatures.hasOwnProperty(feature)) {
Assert.areSame(testFeatures[feature], me.app.isEnabled(feature),
'The feature "' + feature + '" is enabled by file loading.');
}
});
}, 1000);
}
}));