UNPKG

featuretoggle-react

Version:

Library to use Feature Toggles of your choice in a React application

57 lines (53 loc) 1.58 kB
"use strict"; 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); }); });