@blinkk/editor
Version:
Structured content editor with live previews.
124 lines • 4.45 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const featureManager_1 = require("./featureManager");
const ava_1 = __importDefault(require("ava"));
ava_1.default('default status with no features defined', t => {
const featuresOff = new featureManager_1.FeatureManager({
defaultStatus: false,
});
t.is(featuresOff.isOn('random'), false);
t.is(featuresOff.isOff('random'), true);
const featuresOn = new featureManager_1.FeatureManager({
defaultStatus: true,
});
t.is(featuresOn.isOn('random'), true);
t.is(featuresOn.isOff('random'), false);
});
ava_1.default('turn features on, default off', t => {
const features = new featureManager_1.FeatureManager({
defaultStatus: false,
});
t.is(features.isOn('random'), false);
t.is(features.isOff('random'), true);
t.is(features.on('random'), true);
t.is(features.isOn('random'), true);
t.is(features.isOff('random'), false);
});
ava_1.default('turn features on, default on', t => {
const features = new featureManager_1.FeatureManager({
defaultStatus: true,
});
t.is(features.isOn('random'), true);
t.is(features.isOff('random'), false);
t.is(features.on('random'), true);
t.is(features.isOn('random'), true);
t.is(features.isOff('random'), false);
});
ava_1.default('turn features off, default off', t => {
const features = new featureManager_1.FeatureManager({
defaultStatus: false,
});
t.is(features.isOn('random'), false);
t.is(features.isOff('random'), true);
t.is(features.off('random'), false);
t.is(features.isOn('random'), false);
t.is(features.isOff('random'), true);
});
ava_1.default('turn features off, default on', t => {
const features = new featureManager_1.FeatureManager({
defaultStatus: true,
});
t.is(features.isOn('random'), true);
t.is(features.isOff('random'), false);
t.is(features.off('random'), false);
t.is(features.isOn('random'), false);
t.is(features.isOff('random'), true);
});
ava_1.default('feature settings on', t => {
const features = new featureManager_1.FeatureManager({
defaultStatus: false,
});
const settings = {
foo: 'bar',
};
t.is(features.isOn('random'), false);
// Set settings when setting feature.
t.is(features.on('random', settings), settings);
t.is(features.isOn('random'), true);
// Can retrieve settings.
t.is(features.settings('random'), settings);
});
ava_1.default('feature settings off', t => {
const features = new featureManager_1.FeatureManager({
defaultStatus: false,
});
const settings = {
foo: 'bar',
};
t.is(features.isOn('random'), false);
// Set settings when setting feature.
t.is(features.off('random', settings), settings);
t.is(features.isOn('random'), false);
// Can retrieve settings.
t.is(features.settings('random'), settings);
});
ava_1.default('feature set values with settings', t => {
const features = new featureManager_1.FeatureManager({
defaultStatus: false,
});
const settings = {
foo: 'bar',
};
t.is(features.isOn('random'), false);
// Set settings when setting feature.
t.is(features.set('random', settings), settings);
t.is(features.isOn('random'), true);
// Can retrieve settings.
t.is(features.settings('random'), settings);
});
ava_1.default('feature set values with boolean, default off', t => {
const features = new featureManager_1.FeatureManager({
defaultStatus: false,
});
t.is(features.isOn('foo'), false);
t.is(features.set('foo', false), false);
t.is(features.isOn('foo'), false);
t.is(features.isOn('bar'), false);
t.is(features.set('bar', true), true);
t.is(features.isOn('bar'), true);
});
ava_1.default('feature set values with boolean, default on', t => {
const features = new featureManager_1.FeatureManager({
defaultStatus: true,
});
t.is(features.isOn('foo'), true);
t.is(features.set('foo', false), false);
t.is(features.isOn('foo'), false);
t.is(features.isOn('bar'), true);
t.is(features.set('bar', true), true);
t.is(features.isOn('bar'), true);
});
//# sourceMappingURL=featureManager.test.js.map