featuretoggle-react
Version:
Library to use Feature Toggles of your choice in a React application
57 lines (53 loc) • 1.58 kB
JavaScript
var _flagsmith = _interopRequireDefault(require("flagsmith"));
var _flagsmith2 = require("./flagsmith");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var state = {
flags: {
feature1: {
enabled: true,
id: 1234,
value: true
},
feature2: {
enabled: false,
id: 2345,
value: false
}
}
};
var expected = {
feature1: true,
feature2: false
};
jest.spyOn(_flagsmith["default"], 'init').mockImplementation(function (_ref) {
var environmentID = _ref.environmentID,
onChange = _ref.onChange;
return onChange();
});
jest.spyOn(_flagsmith["default"], 'getState').mockImplementation(function () {
return state;
});
var config = {
environmentID: 'testEnv'
};
describe('Flagsmith client', function () {
it('init passes flags to handler', function () {
var flagsmithClient = new _flagsmith2.FlagsmithClientClass(config);
var handler = jest.fn();
flagsmithClient.init(handler);
expect(handler).toHaveBeenCalledWith(expected);
});
it('handler not called when fetching complete', function () {
var flagsmithClient = new _flagsmith2.FlagsmithClientClass(config);
flagsmithClient.fetching = true;
var handler = jest.fn();
flagsmithClient.init(handler);
expect(handler).not.toHaveBeenCalled();
});
it('transforms state', function () {
var flagsmithClient = new _flagsmith2.FlagsmithClientClass(config);
var result = flagsmithClient.constructor.transform(state);
expect(result).toEqual(expected);
});
});
;