UNPKG

featuretoggle-react

Version:

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

64 lines (58 loc) 2.38 kB
"use strict"; 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 }); }); });