import NotificationReducer from 'generic-components/notifications/NotificationReducer'; import NotificationConstants from "generic-components/notifications/NotificationConstants"; describe('NotificationReducer', () => { const defaultState = { type: 'default', title: 'some default title', msg: 'some default message', timeout: 1 }; it('Should return default state when action type is not supported', () => { // given const unsupportedAction = { type: undefined }; // when const actualState = NotificationReducer(defaultState, unsupportedAction); // then expect(actualState).toEqual(defaultState); }); it('Should return state with type default when action type is info', () => { // given const expectedState = { type: 'default', title: 'some title', msg: 'some message', timeout: 5 }; const infoAction = { type: NotificationConstants.NOTIFY_INFO, data: { title: "some title", msg: "some message", timeout: 5 } }; // when const actualState = NotificationReducer(defaultState, infoAction); // then expect(actualState).toEqual(expectedState); }); it('Should return status with type success when action type is success', () => { // given const expectedState = { type: 'success', title: 'some title', msg: 'some message', timeout: 2 }; const infoAction = { type: NotificationConstants.NOTIFY_SUCCESS, data: { title: "some title", msg: "some message", timeout: 2 } }; // when const actualState = NotificationReducer(defaultState, infoAction); // then expect(actualState).toEqual(expectedState); }); it('Should return status with type success when action type is success', () => { // given const expectedState = { type: 'success', title: 'some title', msg: 'some message', timeout: 2 }; const infoAction = { type: NotificationConstants.NOTIFY_SUCCESS, data: { title: "some title", msg: "some message", timeout: 2 } }; // when const actualState = NotificationReducer(defaultState, infoAction); // then expect(actualState).toEqual(expectedState); }); it('Should return status with type error when action type is error', () => { // given const expectedState = { type: 'error', title: 'some title', msg: 'some message', timeout: 2 }; const infoAction = { type: NotificationConstants.NOTIFY_ERROR, data: { title: "some title", msg: "some message", timeout: 2 } }; // when const actualState = NotificationReducer(defaultState, infoAction); // then expect(actualState).toEqual(expectedState); }); it('Should return status with type error when action type is error', () => { // given const expectedState = { type: 'error', title: 'some title', msg: 'some message', timeout: 2 }; const infoAction = { type: NotificationConstants.NOTIFY_ERROR, data: { title: "some title", msg: "some message", timeout: 2 } }; // when const actualState = NotificationReducer(defaultState, infoAction); // then expect(actualState).toEqual(expectedState); }); it('Should return status with type warning when action type is warning', () => { // given const expectedState = { type: 'warning', title: 'some title', msg: 'some message', timeout: 2 }; const infoAction = { type: NotificationConstants.NOTIFY_WARNING, data: { title: "some title", msg: "some message", timeout: 2 } }; // when const actualState = NotificationReducer(defaultState, infoAction); // then expect(actualState).toEqual(expectedState); }); it('Should return null when action type is close', () => { // given const expectedState = null; const infoAction = { type: NotificationConstants.NOTIFY_CLOSE, data: { title: "some title", msg: "some message", timeout: 2 } }; // when const actualState = NotificationReducer(defaultState, infoAction); // then expect(actualState).toEqual(expectedState); }); });