unleash-server
Version:
Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.
89 lines • 2.81 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const experimental_1 = require("../types/experimental");
const flag_resolver_1 = __importDefault(require("./flag-resolver"));
test('should produce empty exposed flags', () => {
const resolver = new flag_resolver_1.default(experimental_1.defaultExperimentalOptions);
const result = resolver.getAll();
expect(result.ENABLE_DARK_MODE_SUPPORT).toBe(false);
});
test('should produce UI flags with extra dynamic flags', () => {
const config = {
...experimental_1.defaultExperimentalOptions,
flags: { extraFlag: false },
};
const resolver = new flag_resolver_1.default(config);
const result = resolver.getAll();
expect(result.extraFlag).toBe(false);
});
test('should use external resolver for dynamic flags', () => {
const externalResolver = {
isEnabled: (name) => {
if (name === 'extraFlag') {
return true;
}
},
};
const resolver = new flag_resolver_1.default({
flags: {
extraFlag: false,
},
externalResolver,
});
const result = resolver.getAll();
expect(result.extraFlag).toBe(true);
});
test('should not use external resolver for enabled experiments', () => {
const externalResolver = {
isEnabled: () => {
return false;
},
};
const resolver = new flag_resolver_1.default({
flags: {
should_be_enabled: true,
extraFlag: false,
},
externalResolver,
});
const result = resolver.getAll();
expect(result.should_be_enabled).toBe(true);
});
test('should load experimental flags', () => {
const externalResolver = {
isEnabled: () => {
return false;
},
};
const resolver = new flag_resolver_1.default({
flags: {
extraFlag: false,
someFlag: true,
},
externalResolver,
});
expect(resolver.isEnabled('someFlag')).toBe(true);
expect(resolver.isEnabled('extraFlag')).toBe(false);
});
test('should load experimental flags from external provider', () => {
const externalResolver = {
isEnabled: (name) => {
if (name === 'extraFlag') {
return true;
}
},
};
const resolver = new flag_resolver_1.default({
flags: {
extraFlag: false,
someFlag: true,
},
externalResolver,
});
expect(resolver.isEnabled('someFlag')).toBe(true);
expect(resolver.isEnabled('extraFlag')).toBe(true);
});
//# sourceMappingURL=flag-resolver.test.js.map