]> source.dussan.org Git - sonarqube.git/blob
456aae934b400af5f0b292e956915c5a85b0d07c
[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 DisableableSelectOption from '../../../../components/common/DisableableSelectOption';
23 import { mockProfileOption } from '../../../../helpers/mocks/quality-profiles';
24 import LanguageProfileSelectOption, {
25   LanguageProfileSelectOptionProps,
26   ProfileOption,
27 } from '../LanguageProfileSelectOption';
28
29 it('should render correctly', () => {
30   expect(shallowRender()).toMatchSnapshot('default');
31 });
32
33 describe('tooltip', () => {
34   it('should render correctly', () => {
35     expect(renderTooltipOverly()).toMatchSnapshot('default');
36     expect(renderTooltipOverly({ label: undefined })).toMatchSnapshot('no link');
37   });
38 });
39
40 function renderTooltipOverly(overrides: Partial<ProfileOption> = {}) {
41   const wrapper = shallowRender(overrides);
42   const { disableTooltipOverlay } = wrapper.find(DisableableSelectOption).props();
43   return disableTooltipOverlay();
44 }
45
46 function shallowRender(overrides: Partial<ProfileOption> = {}) {
47   // satisfy the required props that the option actually gets from the select
48   const optionProps = {} as LanguageProfileSelectOptionProps;
49   return shallow(
50     <LanguageProfileSelectOption {...optionProps} data={{ ...mockProfileOption(), ...overrides }} />
51   );
52 }