]> source.dussan.org Git - sonarqube.git/blob
8a1f5e2754c6d84721317f1e3eb7add9e7c2e4e6
[sonarqube.git] /
1 /*
2  * SonarQube
3  * Copyright (C) 2009-2022 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   mockAlmSettingsBindingStatus,
24   mockAzureBindingDefinition,
25   mockBitbucketCloudBindingDefinition,
26   mockGithubBindingDefinition,
27   mockGitlabBindingDefinition,
28 } from '../../../../../helpers/mocks/alm-settings';
29 import { AlmKeys, AlmSettingsBindingStatusType } from '../../../../../types/alm-settings';
30 import AlmBindingDefinitionBox, { AlmBindingDefinitionBoxProps } from '../AlmBindingDefinitionBox';
31
32 it('should render correctly', () => {
33   expect(shallowRender()).toMatchSnapshot('default');
34   expect(shallowRender({ multipleDefinitions: true })).toMatchSnapshot('multiple definitions');
35   expect(
36     shallowRender({
37       status: mockAlmSettingsBindingStatus({
38         type: AlmSettingsBindingStatusType.Success,
39       }),
40     })
41   ).toMatchSnapshot('success');
42   expect(
43     shallowRender({
44       status: mockAlmSettingsBindingStatus({
45         failureMessage: 'Oops, something went wrong',
46         type: AlmSettingsBindingStatusType.Failure,
47       }),
48     })
49   ).toMatchSnapshot('error');
50
51   expect(
52     shallowRender({
53       status: mockAlmSettingsBindingStatus({
54         alertSuccess: true,
55         type: AlmSettingsBindingStatusType.Success,
56       }),
57     })
58   ).toMatchSnapshot('success with alert');
59
60   expect(
61     shallowRender({
62       status: mockAlmSettingsBindingStatus({
63         type: AlmSettingsBindingStatusType.Warning,
64       }),
65     })
66   ).toMatchSnapshot('warning');
67
68   expect(
69     shallowRender({ alm: AlmKeys.Azure, definition: mockAzureBindingDefinition() })
70   ).toMatchSnapshot('Azure DevOps');
71
72   expect(
73     shallowRender({
74       status: mockAlmSettingsBindingStatus({
75         type: AlmSettingsBindingStatusType.Success,
76       }),
77       alm: AlmKeys.GitLab,
78       definition: mockGitlabBindingDefinition(),
79     })
80   ).toMatchSnapshot('success for GitLab');
81
82   expect(
83     shallowRender({
84       status: mockAlmSettingsBindingStatus({
85         type: AlmSettingsBindingStatusType.Success,
86       }),
87       alm: AlmKeys.BitbucketCloud,
88       definition: mockBitbucketCloudBindingDefinition(),
89     })
90   ).toMatchSnapshot('success for Bitbucket Cloud');
91
92   expect(
93     shallowRender({
94       branchesEnabled: false,
95       status: mockAlmSettingsBindingStatus({
96         alertSuccess: true,
97         type: AlmSettingsBindingStatusType.Success,
98       }),
99     })
100   ).toMatchSnapshot('success with branches disabled');
101 });
102
103 function shallowRender(props: Partial<AlmBindingDefinitionBoxProps> = {}) {
104   return shallow(
105     <AlmBindingDefinitionBox
106       alm={AlmKeys.GitHub}
107       branchesEnabled={true}
108       definition={mockGithubBindingDefinition()}
109       multipleDefinitions={false}
110       onCheck={jest.fn()}
111       onDelete={jest.fn()}
112       onEdit={jest.fn()}
113       {...props}
114     />
115   );
116 }