reducer.spec.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import {
  2. addTopicMessage,
  3. resetTopicMessages,
  4. updateTopicMessagesMeta,
  5. updateTopicMessagesPhase,
  6. } from 'redux/actions';
  7. import reducer from 'redux/reducers/topicMessages/reducer';
  8. import { topicMessagePayload, topicMessagesMetaPayload } from './fixtures';
  9. describe('TopicMessages reducer', () => {
  10. it('Adds new message', () => {
  11. const state = reducer(undefined, addTopicMessage(topicMessagePayload));
  12. expect(state.messages.length).toEqual(1);
  13. expect(state).toMatchSnapshot();
  14. });
  15. it('Clears messages', () => {
  16. const state = reducer(undefined, addTopicMessage(topicMessagePayload));
  17. expect(state.messages.length).toEqual(1);
  18. const newState = reducer(state, resetTopicMessages());
  19. expect(newState.messages.length).toEqual(0);
  20. });
  21. it('Updates Topic Messages Phase', () => {
  22. const phase = 'Polling';
  23. const state = reducer(undefined, updateTopicMessagesPhase(phase));
  24. expect(state.phase).toEqual(phase);
  25. });
  26. it('Updates Topic Messages Meta', () => {
  27. const state = reducer(
  28. undefined,
  29. updateTopicMessagesMeta(topicMessagesMetaPayload)
  30. );
  31. expect(state.meta).toEqual(topicMessagesMetaPayload);
  32. });
  33. });