UNPKG

mx-react-toaster

Version:
125 lines (91 loc) 4.4 kB
'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactTestRenderer = require('react-test-renderer'); var _reactTestRenderer2 = _interopRequireDefault(_reactTestRenderer); var _enzyme = require('enzyme'); var _AlertMessage = require('./AlertMessage'); var _AlertMessage2 = _interopRequireDefault(_AlertMessage); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } jest.useFakeTimers(); describe('AlertMessage', function () { test('should render the given message', function () { var props = { message: 'Some important message' }; var component = _reactTestRenderer2.default.create(_react2.default.createElement(_AlertMessage2.default, props)); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); test('should render the given icon if any', function () { var props = { icon: _react2.default.createElement( 'div', null, 'Icon' ) }; var component = _reactTestRenderer2.default.create(_react2.default.createElement(_AlertMessage2.default, props)); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); test('should use the given theme', function () { var props = { theme: 'light' }; var component = _reactTestRenderer2.default.create(_react2.default.createElement(_AlertMessage2.default, props)); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); test('should change the icon based on the given type prop', function () { var props = { type: 'info' }; var component = _reactTestRenderer2.default.create(_react2.default.createElement(_AlertMessage2.default, props)); var tree = component.toJSON(); expect(tree).toMatchSnapshot(); props.type = 'error'; component = _reactTestRenderer2.default.create(_react2.default.createElement(_AlertMessage2.default, props)); tree = component.toJSON(); expect(tree).toMatchSnapshot(); props.type = 'success'; component = _reactTestRenderer2.default.create(_react2.default.createElement(_AlertMessage2.default, props)); tree = component.toJSON(); expect(tree).toMatchSnapshot(); }); describe('_removeItself', _asyncToGenerator(regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: test('should call the given onRemoveAlert function after the given time', function () { var props = { onRemoveAlert: jest.fn(), time: 3 }; var component = _reactTestRenderer2.default.create(_react2.default.createElement(_AlertMessage2.default, props)); component.toJSON(); setTimeout(function () { expect(props.onRemoveAlert).toHaveBeenCalled(); }, props.time); jest.runOnlyPendingTimers(); }); test('should call the default onRemoveAlert', function () { var props = { time: 3 }; var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_AlertMessage2.default, props)); var instance = wrapper.instance(); expect(_typeof(instance.props.onRemoveAlert)).toBe('function'); expect(instance.props.onRemoveAlert()).toBe(undefined); }); case 2: case 'end': return _context.stop(); } } }, _callee, undefined); }))); });