organizations
}: Props) {
const other = organizations.filter(o => o.key !== organization.key);
+ const isAdmin = organization.actions && organization.actions.admin;
let almKey;
let tooltipContent;
tooltipContent = (
<>
<p>{translateWithParameters('organization.not_bound_to_x', translate(almKey))}</p>
- <hr className="spacer-top spacer-bottom" />
- <Link to={`/organizations/${organization.key}/edit`}>
- {translate('organization.go_to_settings_to_bind')}
- </Link>
+ {isAdmin && (
+ <>
+ <hr className="spacer-top spacer-bottom" />
+ <Link to={`/organizations/${organization.key}/edit`}>
+ {translate('organization.go_to_settings_to_bind')}
+ </Link>
+ </>
+ )}
</>
);
tooltipIconSrc = `${getBaseUrl()}/images/sonarcloud/${almKey}-unbound.svg`;
).toMatchSnapshot();
});
+it('renders with the organization tooltip for an admin user of an organization', () => {
+ expect(
+ shallowRender({
+ currentUser: mockLoggedInUser({
+ externalProvider: 'github'
+ }),
+ organization: {
+ actions: { admin: true },
+ key: 'org1',
+ name: 'org1',
+ projectVisibility: 'public'
+ }
+ }).find('Tooltip')
+ ).toMatchSnapshot();
+});
+
+it('renders without the organization tooltip for a non-admin user of an organization', () => {
+ expect(
+ shallowRender({
+ currentUser: mockLoggedInUser({
+ externalProvider: 'github'
+ }),
+ organization: {
+ actions: { admin: false },
+ key: 'org1',
+ name: 'org1',
+ projectVisibility: 'public'
+ }
+ }).find('Tooltip')
+ ).toMatchSnapshot();
+});
+
it('renders dropdown', () => {
const organizations: T.Organization[] = [
{ actions: { admin: true }, key: 'org1', name: 'org1', projectVisibility: 'public' },
<p>
organization.not_bound_to_x.github
</p>
- <hr
- className="spacer-top spacer-bottom"
- />
- <Link
- onlyActiveOnIndex={false}
- style={Object {}}
- to="/organizations/foo/edit"
- >
- organization.go_to_settings_to_bind
- </Link>
</React.Fragment>
}
>
</Tooltip>
</header>
`;
+
+exports[`renders with the organization tooltip for an admin user of an organization 1`] = `
+<Tooltip
+ mouseLeaveDelay={0.25}
+ overlay={
+ <React.Fragment>
+ <p>
+ organization.not_bound_to_x.github
+ </p>
+ <React.Fragment>
+ <hr
+ className="spacer-top spacer-bottom"
+ />
+ <Link
+ onlyActiveOnIndex={false}
+ style={Object {}}
+ to="/organizations/org1/edit"
+ >
+ organization.go_to_settings_to_bind
+ </Link>
+ </React.Fragment>
+ </React.Fragment>
+ }
+>
+ <img
+ alt="github"
+ className="text-middle spacer-left"
+ height={16}
+ src="/images/sonarcloud/github-unbound.svg"
+ width={16}
+ />
+</Tooltip>
+`;
+
+exports[`renders without the organization tooltip for a non-admin user of an organization 1`] = `
+<Tooltip
+ mouseLeaveDelay={0.25}
+ overlay={
+ <React.Fragment>
+ <p>
+ organization.not_bound_to_x.github
+ </p>
+ </React.Fragment>
+ }
+>
+ <img
+ alt="github"
+ className="text-middle spacer-left"
+ height={16}
+ src="/images/sonarcloud/github-unbound.svg"
+ width={16}
+ />
+</Tooltip>
+`;