]> source.dussan.org Git - sonarqube.git/blob
1768bd4ef2e4d850f53bc47dc976873a4f2ccd46
[sonarqube.git] /
1 /*
2  * SonarQube
3  * Copyright (C) 2009-2019 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 * as React from 'react';
21 import { shallow } from 'enzyme';
22 import { OrganizationNavigationMenu } from '../OrganizationNavigationMenuContainer';
23 import { isCurrentUserMemberOf, hasPrivateAccess } from '../../../../helpers/organizations';
24
25 jest.mock('../../../../helpers/organizations', () => ({
26   isCurrentUserMemberOf: jest.fn().mockReturnValue(true),
27   hasPrivateAccess: jest.fn().mockReturnValue(true)
28 }));
29
30 const organization: T.Organization = {
31   key: 'foo',
32   name: 'Foo',
33   projectVisibility: 'public'
34 };
35
36 const loggedInUser = {
37   isLoggedIn: true,
38   login: 'luke',
39   name: 'Skywalker',
40   showOnboardingTutorial: false
41 };
42
43 beforeEach(() => {
44   (isCurrentUserMemberOf as jest.Mock<any>).mockClear();
45   (hasPrivateAccess as jest.Mock<any>).mockClear();
46 });
47
48 it('renders', () => {
49   expect(
50     shallow(
51       <OrganizationNavigationMenu
52         currentUser={loggedInUser}
53         location={{ pathname: '' }}
54         organization={organization}
55         userOrganizations={[organization]}
56       />
57     )
58   ).toMatchSnapshot();
59 });
60
61 it('renders for admin', () => {
62   expect(
63     shallow(
64       <OrganizationNavigationMenu
65         currentUser={loggedInUser}
66         location={{ pathname: '' }}
67         organization={{ ...organization, actions: { admin: true } }}
68         userOrganizations={[organization]}
69       />
70     )
71   ).toMatchSnapshot();
72 });