summaryrefslogtreecommitdiffstats
path: root/test/app/globalInlineMessageBar/GlobalInlineMessageBarReducer.test.js
blob: bbcb7c17afc5b2e6c61252c9fe0bb61929c4e314 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import GlobalInlineMessageBarReducer from 'app/globalInlineMessageBar/GlobalInlineMessageBarReducer';
import {
  globalInlineMessageBarActionTypes
} from 'app/globalInlineMessageBar/GlobalInlineMessageBarConstants';
import {
  MESSAGE_LEVEL_WARNING
} from 'utils/GlobalConstants'

describe('GlobalInlineMessageBarReducerTests', () => {
  it('Action Type: SET_GLOBAL_MESSAGE', () => {
    // Given
    const action = {
      type: globalInlineMessageBarActionTypes.SET_GLOBAL_MESSAGE,
      data: {
        msgText: 'some error message here',
        msgSeverity: MESSAGE_LEVEL_WARNING
      }
    };
    let state = {};

    // When
    state = GlobalInlineMessageBarReducer(state, action);

    // Then
    expect(state).toEqual({
      feedbackMsgText: action.data.msgText,
      feedbackMsgSeverity: action.data.msgSeverity
    });
  });

  it('Action Type: CLEAR_GLOBAL_MESSAGE', () => {
    // Given
    const action = {
      type: globalInlineMessageBarActionTypes.CLEAR_GLOBAL_MESSAGE
    };
    let state = {
      feedbackMsgText: 'some error message here',
      feedbackMsgSeverity: MESSAGE_LEVEL_WARNING
    };

    // When
    state = GlobalInlineMessageBarReducer(state, action);

    // Then
    expect(state).toEqual({
      feedbackMsgText: '',
      feedbackMsgSeverity: ''
    });
  });

  it('Action Type: unknown', () => {
    // Given
    const action = {
      type: "TestUnknownType"
    };
    const initialState = {
      feedbackMsgText: 'some error message here',
      feedbackMsgSeverity: MESSAGE_LEVEL_WARNING
    };

    // When
    const newState = GlobalInlineMessageBarReducer(initialState, action);

    // Then
    expect(newState).toEqual(initialState);
  });
});