featuretoggle-react
Version:
Library to use Feature Toggles of your choice in a React application
64 lines (58 loc) • 2.38 kB
JavaScript
var _react = _interopRequireDefault(require("react"));
var _enzyme = require("enzyme");
var _FeatureToggle = require("./FeatureToggle");
var _On = require("./On");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var flags = {
feature1: true,
feature2: false
};
var handler = jest.fn();
var provider = {
init: function init() {
return handler(flags);
}
};
describe('FeatureToggle', function () {
it('calls provider.init on mount', function () {
(0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_FeatureToggle.FeatureToggleWrapper, {
provider: provider
}, /*#__PURE__*/_react["default"].createElement(_FeatureToggle.FeatureToggle, {
feature: "feature1"
})));
expect(handler).toHaveBeenCalledWith({
feature1: true,
feature2: false
});
});
it('returns children when a feature is defined', function () {
var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_FeatureToggle.FeatureToggleWrapper, {
provider: provider
}, /*#__PURE__*/_react["default"].createElement(_FeatureToggle.FeatureToggle, {
feature: "feature1"
}, /*#__PURE__*/_react["default"].createElement(_On.On, null))));
expect(wrapper.find(_On.On).length).toEqual(1);
});
it('returns empty when no feature defined', function () {
var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_FeatureToggle.FeatureToggleWrapper, {
provider: provider
}, /*#__PURE__*/_react["default"].createElement(_FeatureToggle.FeatureToggle, null, /*#__PURE__*/_react["default"].createElement(_On.On, null))));
expect(wrapper.find(_On.On).length).toEqual(0);
});
it('passes featureToggleEnabled to child', function () {
var nonMockedProvider = {
init: function init(nonMockedhandler) {
return nonMockedhandler(flags);
}
};
var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_FeatureToggle.FeatureToggleWrapper, {
provider: nonMockedProvider
}, /*#__PURE__*/_react["default"].createElement(_FeatureToggle.FeatureToggle, {
feature: "feature1"
}, /*#__PURE__*/_react["default"].createElement(_On.On, null))));
expect(wrapper.find(_On.On).props()).toEqual({
featureToggleEnabled: true
});
});
});
;