UNPKG

react-expand-animated

Version:

The expand component that animate the height of child component when toggling

82 lines (75 loc) 8.86 kB
"use strict"; var _react = _interopRequireDefault(require("react")); var _enzyme = require("enzyme"); var _Expand = _interopRequireDefault(require("./Expand")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } describe('Expand', function () { beforeEach(function () { jest.useFakeTimers(); }); it('when render expand with children --> then render default Expand with children', function () { var wrapper = (0, _enzyme.render)(_react["default"].createElement(_Expand["default"], null, "Hello")); expect(wrapper).toMatchSnapshot(); }); it('when render expand with open=true --> then render Expand with open styles', function () { var wrapper = (0, _enzyme.render)(_react["default"].createElement(_Expand["default"], { open: true }, "Open true")); expect(wrapper).toMatchSnapshot(); }); it('when toggle open from false to true --> then change Expand styles from close to open', function () { var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_Expand["default"], null, "Toggle")); expect(wrapper).toMatchSnapshot(); wrapper.setProps({ open: true }); jest.runOnlyPendingTimers(); wrapper.update(); expect(wrapper).toMatchSnapshot(); jest.runOnlyPendingTimers(); wrapper.update(); expect(wrapper).toMatchSnapshot(); }); it('when toggle three times --> then Expand styles is open', function () { var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_Expand["default"], null, "Toggle")); wrapper.setProps({ open: true }); jest.runAllTimers(); wrapper.setProps({ open: false }); jest.runAllTimers(); wrapper.setProps({ open: true }); jest.runAllTimers(); wrapper.update(); expect(wrapper).toMatchSnapshot(); }); it('when set props two times true --> then Expand styles is open', function () { var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_Expand["default"], null, "Toggle")); wrapper.setProps({ open: true }); jest.runAllTimers(); wrapper.setProps({ open: true }); jest.runAllTimers(); wrapper.update(); expect(wrapper).toMatchSnapshot(); }); it('when component unmounted --> then clear timeout', function () { var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_Expand["default"], null, "Toggle")); wrapper.setProps({ open: true }); var _wrapper$instance = wrapper.instance(), timeout = _wrapper$instance.timeout; expect(timeout).toBeTruthy(); wrapper.unmount(); expect(clearTimeout).toHaveBeenCalledWith(timeout); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FeHBhbmQudGVzdC5qc3giXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJiZWZvcmVFYWNoIiwiamVzdCIsInVzZUZha2VUaW1lcnMiLCJpdCIsIndyYXBwZXIiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJzZXRQcm9wcyIsIm9wZW4iLCJydW5Pbmx5UGVuZGluZ1RpbWVycyIsInVwZGF0ZSIsInJ1bkFsbFRpbWVycyIsImluc3RhbmNlIiwidGltZW91dCIsInRvQmVUcnV0aHkiLCJ1bm1vdW50IiwiY2xlYXJUaW1lb3V0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBRUE7Ozs7QUFFQUEsUUFBUSxDQUFDLFFBQUQsRUFBVyxZQUFNO0FBQ3ZCQyxFQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNmQyxJQUFBQSxJQUFJLENBQUNDLGFBQUw7QUFDRCxHQUZTLENBQVY7QUFJQUMsRUFBQUEsRUFBRSxDQUFDLCtFQUFELEVBQWtGLFlBQU07QUFDeEYsUUFBTUMsT0FBTyxHQUFHLG9CQUFPLGdDQUFDLGtCQUFELGdCQUFQLENBQWhCO0FBRUFDLElBQUFBLE1BQU0sQ0FBQ0QsT0FBRCxDQUFOLENBQWdCRSxlQUFoQjtBQUNELEdBSkMsQ0FBRjtBQU1BSCxFQUFBQSxFQUFFLENBQUMsMkVBQUQsRUFBOEUsWUFBTTtBQUNwRixRQUFNQyxPQUFPLEdBQUcsb0JBQU8sZ0NBQUMsa0JBQUQ7QUFBUSxNQUFBLElBQUk7QUFBWixtQkFBUCxDQUFoQjtBQUVBQyxJQUFBQSxNQUFNLENBQUNELE9BQUQsQ0FBTixDQUFnQkUsZUFBaEI7QUFDRCxHQUpDLENBQUY7QUFNQUgsRUFBQUEsRUFBRSxDQUFDLHNGQUFELEVBQXlGLFlBQU07QUFDL0YsUUFBTUMsT0FBTyxHQUFHLG1CQUFNLGdDQUFDLGtCQUFELGlCQUFOLENBQWhCO0FBRUFDLElBQUFBLE1BQU0sQ0FBQ0QsT0FBRCxDQUFOLENBQWdCRSxlQUFoQjtBQUVBRixJQUFBQSxPQUFPLENBQUNHLFFBQVIsQ0FBaUI7QUFBRUMsTUFBQUEsSUFBSSxFQUFFO0FBQVIsS0FBakI7QUFFQVAsSUFBQUEsSUFBSSxDQUFDUSxvQkFBTDtBQUVBTCxJQUFBQSxPQUFPLENBQUNNLE1BQVI7QUFFQUwsSUFBQUEsTUFBTSxDQUFDRCxPQUFELENBQU4sQ0FBZ0JFLGVBQWhCO0FBRUFMLElBQUFBLElBQUksQ0FBQ1Esb0JBQUw7QUFFQUwsSUFBQUEsT0FBTyxDQUFDTSxNQUFSO0FBRUFMLElBQUFBLE1BQU0sQ0FBQ0QsT0FBRCxDQUFOLENBQWdCRSxlQUFoQjtBQUNELEdBbEJDLENBQUY7QUFvQkFILEVBQUFBLEVBQUUsQ0FBQyx3REFBRCxFQUEyRCxZQUFNO0FBQ2pFLFFBQU1DLE9BQU8sR0FBRyxtQkFBTSxnQ0FBQyxrQkFBRCxpQkFBTixDQUFoQjtBQUVBQSxJQUFBQSxPQUFPLENBQUNHLFFBQVIsQ0FBaUI7QUFBRUMsTUFBQUEsSUFBSSxFQUFFO0FBQVIsS0FBakI7QUFFQVAsSUFBQUEsSUFBSSxDQUFDVSxZQUFMO0FBRUFQLElBQUFBLE9BQU8sQ0FBQ0csUUFBUixDQUFpQjtBQUFFQyxNQUFBQSxJQUFJLEVBQUU7QUFBUixLQUFqQjtBQUVBUCxJQUFBQSxJQUFJLENBQUNVLFlBQUw7QUFFQVAsSUFBQUEsT0FBTyxDQUFDRyxRQUFSLENBQWlCO0FBQUVDLE1BQUFBLElBQUksRUFBRTtBQUFSLEtBQWpCO0FBRUFQLElBQUFBLElBQUksQ0FBQ1UsWUFBTDtBQUVBUCxJQUFBQSxPQUFPLENBQUNNLE1BQVI7QUFFQUwsSUFBQUEsTUFBTSxDQUFDRCxPQUFELENBQU4sQ0FBZ0JFLGVBQWhCO0FBQ0QsR0FsQkMsQ0FBRjtBQW9CQUgsRUFBQUEsRUFBRSxDQUFDLDhEQUFELEVBQWlFLFlBQU07QUFDdkUsUUFBTUMsT0FBTyxHQUFHLG1CQUFNLGdDQUFDLGtCQUFELGlCQUFOLENBQWhCO0FBRUFBLElBQUFBLE9BQU8sQ0FBQ0csUUFBUixDQUFpQjtBQUFFQyxNQUFBQSxJQUFJLEVBQUU7QUFBUixLQUFqQjtBQUVBUCxJQUFBQSxJQUFJLENBQUNVLFlBQUw7QUFFQVAsSUFBQUEsT0FBTyxDQUFDRyxRQUFSLENBQWlCO0FBQUVDLE1BQUFBLElBQUksRUFBRTtBQUFSLEtBQWpCO0FBRUFQLElBQUFBLElBQUksQ0FBQ1UsWUFBTDtBQUVBUCxJQUFBQSxPQUFPLENBQUNNLE1BQVI7QUFFQUwsSUFBQUEsTUFBTSxDQUFDRCxPQUFELENBQU4sQ0FBZ0JFLGVBQWhCO0FBQ0QsR0FkQyxDQUFGO0FBZ0JBSCxFQUFBQSxFQUFFLENBQUMsaURBQUQsRUFBb0QsWUFBTTtBQUMxRCxRQUFNQyxPQUFPLEdBQUcsbUJBQU0sZ0NBQUMsa0JBQUQsaUJBQU4sQ0FBaEI7QUFFQUEsSUFBQUEsT0FBTyxDQUFDRyxRQUFSLENBQWlCO0FBQUVDLE1BQUFBLElBQUksRUFBRTtBQUFSLEtBQWpCOztBQUgwRCw0QkFLdENKLE9BQU8sQ0FBQ1EsUUFBUixFQUxzQztBQUFBLFFBS2xEQyxPQUxrRCxxQkFLbERBLE9BTGtEOztBQU8xRFIsSUFBQUEsTUFBTSxDQUFDUSxPQUFELENBQU4sQ0FBZ0JDLFVBQWhCO0FBRUFWLElBQUFBLE9BQU8sQ0FBQ1csT0FBUjtBQUVBVixJQUFBQSxNQUFNLENBQUNXLFlBQUQsQ0FBTixDQUFxQkMsb0JBQXJCLENBQTBDSixPQUExQztBQUNELEdBWkMsQ0FBRjtBQWFELENBdEZPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyLCBtb3VudCB9IGZyb20gJ2VuenltZSc7XG5cbmltcG9ydCBFeHBhbmQgZnJvbSAnLi9FeHBhbmQnO1xuXG5kZXNjcmliZSgnRXhwYW5kJywgKCkgPT4ge1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBqZXN0LnVzZUZha2VUaW1lcnMoKTtcbiAgfSk7XG5cbiAgaXQoJ3doZW4gcmVuZGVyIGV4cGFuZCB3aXRoIGNoaWxkcmVuIC0tPiB0aGVuIHJlbmRlciBkZWZhdWx0IEV4cGFuZCB3aXRoIGNoaWxkcmVuJywgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSByZW5kZXIoPEV4cGFuZD5IZWxsbzwvRXhwYW5kPik7XG5cbiAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xuXG4gIGl0KCd3aGVuIHJlbmRlciBleHBhbmQgd2l0aCBvcGVuPXRydWUgLS0+IHRoZW4gcmVuZGVyIEV4cGFuZCB3aXRoIG9wZW4gc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSByZW5kZXIoPEV4cGFuZCBvcGVuPk9wZW4gdHJ1ZTwvRXhwYW5kPik7XG5cbiAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xuXG4gIGl0KCd3aGVuIHRvZ2dsZSBvcGVuIGZyb20gZmFsc2UgdG8gdHJ1ZSAtLT4gdGhlbiBjaGFuZ2UgRXhwYW5kIHN0eWxlcyBmcm9tIGNsb3NlIHRvIG9wZW4nLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KDxFeHBhbmQ+VG9nZ2xlPC9FeHBhbmQ+KTtcblxuICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcblxuICAgIHdyYXBwZXIuc2V0UHJvcHMoeyBvcGVuOiB0cnVlIH0pO1xuXG4gICAgamVzdC5ydW5Pbmx5UGVuZGluZ1RpbWVycygpO1xuXG4gICAgd3JhcHBlci51cGRhdGUoKTtcblxuICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcblxuICAgIGplc3QucnVuT25seVBlbmRpbmdUaW1lcnMoKTtcblxuICAgIHdyYXBwZXIudXBkYXRlKCk7XG5cbiAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xuXG4gIGl0KCd3aGVuIHRvZ2dsZSB0aHJlZSB0aW1lcyAtLT4gdGhlbiBFeHBhbmQgc3R5bGVzIGlzIG9wZW4nLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KDxFeHBhbmQ+VG9nZ2xlPC9FeHBhbmQ+KTtcblxuICAgIHdyYXBwZXIuc2V0UHJvcHMoeyBvcGVuOiB0cnVlIH0pO1xuXG4gICAgamVzdC5ydW5BbGxUaW1lcnMoKTtcblxuICAgIHdyYXBwZXIuc2V0UHJvcHMoeyBvcGVuOiBmYWxzZSB9KTtcblxuICAgIGplc3QucnVuQWxsVGltZXJzKCk7XG5cbiAgICB3cmFwcGVyLnNldFByb3BzKHsgb3BlbjogdHJ1ZSB9KTtcblxuICAgIGplc3QucnVuQWxsVGltZXJzKCk7XG5cbiAgICB3cmFwcGVyLnVwZGF0ZSgpO1xuXG4gICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcblxuICBpdCgnd2hlbiBzZXQgcHJvcHMgdHdvIHRpbWVzIHRydWUgLS0+IHRoZW4gRXhwYW5kIHN0eWxlcyBpcyBvcGVuJywgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudCg8RXhwYW5kPlRvZ2dsZTwvRXhwYW5kPik7XG5cbiAgICB3cmFwcGVyLnNldFByb3BzKHsgb3BlbjogdHJ1ZSB9KTtcblxuICAgIGplc3QucnVuQWxsVGltZXJzKCk7XG5cbiAgICB3cmFwcGVyLnNldFByb3BzKHsgb3BlbjogdHJ1ZSB9KTtcblxuICAgIGplc3QucnVuQWxsVGltZXJzKCk7XG5cbiAgICB3cmFwcGVyLnVwZGF0ZSgpO1xuXG4gICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcblxuICBpdCgnd2hlbiBjb21wb25lbnQgdW5tb3VudGVkIC0tPiB0aGVuIGNsZWFyIHRpbWVvdXQnLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG1vdW50KDxFeHBhbmQ+VG9nZ2xlPC9FeHBhbmQ+KTtcblxuICAgIHdyYXBwZXIuc2V0UHJvcHMoeyBvcGVuOiB0cnVlIH0pO1xuXG4gICAgY29uc3QgeyB0aW1lb3V0IH0gPSB3cmFwcGVyLmluc3RhbmNlKCk7XG5cbiAgICBleHBlY3QodGltZW91dCkudG9CZVRydXRoeSgpO1xuXG4gICAgd3JhcHBlci51bm1vdW50KCk7XG5cbiAgICBleHBlY3QoY2xlYXJUaW1lb3V0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0aW1lb3V0KTtcbiAgfSk7XG59KTtcbiJdfQ==