]> source.dussan.org Git - sonarqube.git/blob
973cdc0c4f2a359662ff287b4de19e006ebbea7b
[sonarqube.git] /
1 /*
2  * SonarQube
3  * Copyright (C) 2009-2023 SonarSource SA
4  * mailto:info AT sonarsource DOT com
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 3 of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19  */
20 import { shallow } from 'enzyme';
21 import * as React from 'react';
22 import {
23   mockProjectGithubBindingResponse,
24   mockProjectGitLabBindingResponse,
25 } from '../../../../../../helpers/mocks/alm-settings';
26 import { mockMainBranch } from '../../../../../../helpers/mocks/branch-like';
27 import { mockComponent } from '../../../../../../helpers/mocks/component';
28 import { ComponentQualifier } from '../../../../../../types/component';
29 import { CurrentBranchLike, CurrentBranchLikeProps } from '../CurrentBranchLike';
30
31 describe('applications', () => {
32   it('should render correctly when there is only one branch and the user can admin the application', () => {
33     const wrapper = shallowRender({
34       component: mockComponent({
35         configuration: { showSettings: true },
36         qualifier: ComponentQualifier.Application,
37       }),
38       hasManyBranches: false,
39     });
40     expect(wrapper).toMatchSnapshot();
41   });
42
43   it("should render correctly when there is only one branch and the user CAN'T admin the application", () => {
44     const wrapper = shallowRender({
45       component: mockComponent({
46         configuration: { showSettings: false },
47         qualifier: ComponentQualifier.Application,
48       }),
49       hasManyBranches: false,
50     });
51     expect(wrapper).toMatchSnapshot();
52   });
53
54   it('should render correctly when there are many branchlikes', () => {
55     const wrapper = shallowRender({
56       branchesEnabled: true,
57       component: mockComponent({
58         qualifier: ComponentQualifier.Application,
59       }),
60       hasManyBranches: true,
61     });
62     expect(wrapper).toMatchSnapshot();
63   });
64 });
65
66 describe('projects', () => {
67   it('should render correctly when branches support is disabled', () => {
68     expect(
69       shallowRender({
70         branchesEnabled: false,
71         component: mockComponent({
72           qualifier: ComponentQualifier.Project,
73         }),
74       })
75     ).toMatchSnapshot('default');
76     expect(
77       shallowRender({
78         branchesEnabled: false,
79         component: mockComponent({
80           qualifier: ComponentQualifier.Project,
81         }),
82         projectBinding: mockProjectGithubBindingResponse(),
83       })
84     ).toMatchSnapshot('alm with prs');
85     expect(
86       shallowRender({
87         branchesEnabled: false,
88         component: mockComponent({
89           qualifier: ComponentQualifier.Project,
90         }),
91         projectBinding: mockProjectGitLabBindingResponse(),
92       })
93     ).toMatchSnapshot('alm with mrs');
94   });
95
96   it('should render correctly when there is only one branchlike', () => {
97     const wrapper = shallowRender({
98       branchesEnabled: true,
99       component: mockComponent({
100         qualifier: ComponentQualifier.Project,
101       }),
102       hasManyBranches: false,
103     });
104     expect(wrapper).toMatchSnapshot();
105   });
106
107   it('should render correctly when there are many branchlikes', () => {
108     const wrapper = shallowRender({
109       branchesEnabled: true,
110       component: mockComponent({
111         qualifier: ComponentQualifier.Project,
112       }),
113       hasManyBranches: true,
114     });
115     expect(wrapper).toMatchSnapshot();
116   });
117 });
118
119 function shallowRender(props?: Partial<CurrentBranchLikeProps>) {
120   return shallow(
121     <CurrentBranchLike
122       branchesEnabled={false}
123       component={mockComponent()}
124       currentBranchLike={mockMainBranch()}
125       hasManyBranches={false}
126       {...props}
127     />
128   );
129 }