UNPKG

react-ions

Version:

An open source set of React components that implement Ambassador's Design and UX patterns.

68 lines (49 loc) 2.72 kB
'use strict'; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _AlertSystem = require('../AlertSystem'); var _AlertSystem2 = _interopRequireDefault(_AlertSystem); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('AlertSystem', function () { describe('render', function () { it('should render an empty alert system', function () { expect(shallow(_react2.default.createElement(_AlertSystem2.default, { alerts: [] }))).toMatchSnapshot(); }); it('should render an alert system with alerts', function () { var clock = sinon.useFakeTimers(1588161287485 * 1000); var alerts = [{ content: 'Test success' }, { type: 'warning', content: 'Test warning' }, { type: 'info', content: 'Test info' }, { type: 'danger', content: 'Test danger' }]; expect(shallow(_react2.default.createElement(_AlertSystem2.default, { alerts: alerts }))).toMatchSnapshot(); clock.restore(); }); it('should upadate when the alerts prop changes', function () { var clock = sinon.useFakeTimers(1588161287485 * 1000); var alerts = [{ content: 'Test success' }]; var wrapper = shallow(_react2.default.createElement(_AlertSystem2.default, { alerts: alerts })); expect(wrapper).toMatchSnapshot(); alerts.push({ type: 'warning', content: 'Test warning' }); wrapper.setProps({ alerts: alerts }); expect(wrapper).toMatchSnapshot(); clock.restore(); }); }); describe('getAlerts', function () { it('should get alerts that are not hidden', function () { var alerts = [{ content: 'Test success' }, { type: 'warning', content: 'Test warning', hidden: true }, { type: 'info', content: 'Test info', hidden: true }, { type: 'danger', content: 'Test danger' }]; var getAlerts = shallow(_react2.default.createElement(_AlertSystem2.default, { alerts: alerts })).instance().getAlerts; expect(getAlerts()).toMatchSnapshot(); }); }); describe('removeAlert', function () { it('should hide an alert and call its onClose callback if provided', function () { var alerts = [{ key: 'ALERT_KEY', content: 'Test success', onClose: sinon.spy() }]; var wrapper = shallow(_react2.default.createElement(_AlertSystem2.default, { alerts: alerts })); var removeAlert = wrapper.instance().removeAlert; var alert = { key: 'ALERT_KEY' }; expect(wrapper.state('alerts')[0]).toMatchSnapshot(); removeAlert(alert); expect(wrapper.state('alerts')[0]).toMatchSnapshot(); expect(alerts[0].onClose.calledOnce).toBe.true; expect(alerts[0].onClose.calledWithExactly(alert)).toBe.true; }); }); });