"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var React = require("react"); var safeSetTimeout_1 = require("./safeSetTimeout"); var enzyme_1 = require("enzyme"); describe('safeSetTimeout', function () { var setTimeoutCalled = false; var Foo = /** @class */ (function (_super) { tslib_1.__extends(Foo, _super); function Foo(props) { var _this = _super.call(this, props) || this; _this._setTimeout = (0, safeSetTimeout_1.safeSetTimeout)(_this); return _this; } Foo.prototype.render = function () { return React.createElement("div", null, "Hello"); }; Foo.prototype.componentDidMount = function () { this._setTimeout(function () { return (setTimeoutCalled = true); }, 0); }; return Foo; }(React.Component)); beforeEach(function () { setTimeoutCalled = false; jest.useFakeTimers(); }); afterEach(function () { jest.useRealTimers(); }); it('can request animation frame', function () { (0, enzyme_1.mount)(React.createElement(Foo, null)); expect(setTimeoutCalled).toEqual(false); jest.advanceTimersByTime(100); expect(setTimeoutCalled).toEqual(true); }); it('can cancel request animation frame', function () { var wrapper = (0, enzyme_1.mount)(React.createElement(Foo, null)); expect(setTimeoutCalled).toEqual(false); wrapper.unmount(); jest.advanceTimersByTime(100); expect(setTimeoutCalled).toEqual(false); }); }); //# sourceMappingURL=safeSetTimeout.test.js.map