summaryrefslogtreecommitdiff
path: root/spec/javascripts/ide/stores/modules/pane/actions_spec.js
blob: f150ded6df5baa939f416bbb7c5ee3014a8f1669 (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import * as actions from '~/ide/stores/modules/pane/actions';
import * as types from '~/ide/stores/modules/pane/mutation_types';
import testAction from 'spec/helpers/vuex_action_helper';

describe('IDE pane module actions', () => {
  const TEST_VIEW = { name: 'test' };
  const TEST_VIEW_KEEP_ALIVE = { name: 'test-keep-alive', keepAlive: true };

  describe('toggleOpen', () => {
    it('dispatches open if closed', done => {
      testAction(
        actions.toggleOpen,
        TEST_VIEW,
        { isOpen: false },
        [],
        [{ type: 'open', payload: TEST_VIEW }],
        done,
      );
    });

    it('dispatches close if opened', done => {
      testAction(
        actions.toggleOpen,
        TEST_VIEW,
        { isOpen: true },
        [],
        [{ type: 'close' }],
        done,
      );
    });
  });

  describe('open', () => {
    it('commits SET_OPEN', done => {
      testAction(
        actions.open,
        null,
        {},
        [{ type: types.SET_OPEN, payload: true }],
        [],
        done,
      );
    });

    it('commits SET_CURRENT_VIEW if view is given', done => {
      testAction(
        actions.open,
        TEST_VIEW,
        {},
        [
          { type: types.SET_OPEN, payload: true },
          { type: types.SET_CURRENT_VIEW, payload: TEST_VIEW.name },
        ],
        [],
        done,
      );
    });

    it('commits KEEP_ALIVE_VIEW if keepAlive is true', done => {
      testAction(
        actions.open,
        TEST_VIEW_KEEP_ALIVE,
        {},
        [
          { type: types.SET_OPEN, payload: true },
          { type: types.SET_CURRENT_VIEW, payload: TEST_VIEW_KEEP_ALIVE.name },
          { type: types.KEEP_ALIVE_VIEW, payload: TEST_VIEW_KEEP_ALIVE.name },
        ],
        [],
        done,
      );
    });
  });

  describe('close', () => {
    it('commits SET_OPEN', done => {
      testAction(
        actions.close,
        null,
        {},
        [{ type: types.SET_OPEN, payload: false }],
        [],
        done,
      );
    });
  });
});