summaryrefslogtreecommitdiff
path: root/spec/frontend/ide/stores/mutations/branch_spec.js
blob: 0900b25d5d3d2c1bec9b3c4ca2fb2de5be6b92b9 (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
import mutations from '~/ide/stores/mutations/branch';
import state from '~/ide/stores/state';

describe('Multi-file store branch mutations', () => {
  let localState;

  beforeEach(() => {
    localState = state();
  });

  describe('SET_CURRENT_BRANCH', () => {
    it('sets currentBranch', () => {
      mutations.SET_CURRENT_BRANCH(localState, 'master');

      expect(localState.currentBranchId).toBe('master');
    });
  });

  describe('SET_BRANCH_COMMIT', () => {
    it('sets the last commit on current project', () => {
      localState.projects = {
        Example: {
          branches: {
            master: {},
          },
        },
      };

      mutations.SET_BRANCH_COMMIT(localState, {
        projectId: 'Example',
        branchId: 'master',
        commit: {
          title: 'Example commit',
        },
      });

      expect(localState.projects.Example.branches.master.commit.title).toBe('Example commit');
    });
  });

  describe('SET_BRANCH_WORKING_REFERENCE', () => {
    beforeEach(() => {
      localState.projects = {
        Foo: {
          branches: {
            bar: {},
          },
        },
      };
    });

    it('sets workingReference for existing branch', () => {
      mutations.SET_BRANCH_WORKING_REFERENCE(localState, {
        projectId: 'Foo',
        branchId: 'bar',
        reference: 'foo-bar-ref',
      });

      expect(localState.projects.Foo.branches.bar.workingReference).toBe('foo-bar-ref');
    });

    it('does not fail on non-existent just yet branch', () => {
      expect(localState.projects.Foo.branches.unknown).toBeUndefined();

      mutations.SET_BRANCH_WORKING_REFERENCE(localState, {
        projectId: 'Foo',
        branchId: 'unknown',
        reference: 'fun-fun-ref',
      });

      expect(localState.projects.Foo.branches.unknown).not.toBeUndefined();
      expect(localState.projects.Foo.branches.unknown.workingReference).toBe('fun-fun-ref');
    });
  });
});