UNPKG

react-user-idle

Version:

This project is inspired by and forked from https://github.com/ReactTraining/react-idle .

102 lines (86 loc) 3.02 kB
'use strict'; var _enzyme = require('enzyme'); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _index = require('./index'); var _index2 = _interopRequireDefault(_index); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('Idle', function () { it('should render empty when no children or render props set', function () { var wrapper = (0, _enzyme.mount)(_react2.default.createElement(_index2.default, null)); expect(wrapper.children().length).toBe(0); }); it('should render empty when idle not trigger', function () { var wrapper = (0, _enzyme.mount)(_react2.default.createElement( _index2.default, null, 'Long time no action' )); expect(wrapper.children().length).toBe(0); }); it('should render children elements when idle', function () { var timeout = 10; var wrapper = (0, _enzyme.mount)(_react2.default.createElement( _index2.default, { timeout: timeout, throttle: 1 }, _react2.default.createElement( 'div', null, 'Long time no action' ) )); expect(wrapper.children().length).toBe(0); jest.advanceTimersByTime(timeout * 1000); wrapper.update(); expect(wrapper.children().length).toBe(1); }); it('should render by custom function', function () { var timeout = 10; var wrapper = (0, _enzyme.mount)(_react2.default.createElement( _index2.default, { timeout: timeout, throttle: 1 }, function (idle) { return _react2.default.createElement( 'div', null, 'Current idle status: ', idle.toString() ); } )); expect(wrapper.children().length).toBe(1); var text = wrapper.find('div').at(0).text(); expect(text.indexOf('false') > -1); jest.advanceTimersByTime(timeout * 1000); wrapper.update(); expect(wrapper.children().length).toBe(1); text = wrapper.find('div').at(0).text(); expect(text.indexOf('true') > -1); }); it('should delay the timeout when user does action', function () { var timeout = 10; var wrapper = (0, _enzyme.mount)(_react2.default.createElement( _index2.default, { timeout: timeout, throttle: 1 }, function (idle) { return _react2.default.createElement( 'div', null, 'Current idle status: ', idle.toString() ); } )); jest.advanceTimersByTime(timeout * 1000 * 0.5); var div = wrapper.find('div').at(0); expect(div.text().indexOf('false') > -1).toBe(true); var event = new Event('mousedown'); window.dispatchEvent(event); jest.advanceTimersByTime(timeout * 1000 * 0.5); wrapper.update(); expect(wrapper.find('div').at(0).text().indexOf('false') > -1).toBe(true); jest.advanceTimersByTime(timeout * 1000 * 0.5); wrapper.update(); expect(wrapper.find('div').at(0).text().indexOf('true') > -1).toBe(true); }); });