diff options
author | Jeremy Davis <jeremy.davis@sonarsource.com> | 2019-10-24 15:38:40 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2019-11-06 10:04:29 +0100 |
commit | 22c6e4a22a6b07b41d61bae95c8b800452be1a77 (patch) | |
tree | d9cb7e66835b3ce32185237412702df9177b3280 /server/sonar-web/src | |
parent | a394333579b636a2e28264a75c5b01b8ed906bbd (diff) | |
download | sonarqube-22c6e4a22a6b07b41d61bae95c8b800452be1a77.tar.gz sonarqube-22c6e4a22a6b07b41d61bae95c8b800452be1a77.zip |
SONAR-12512 Hide page for CE
Diffstat (limited to 'server/sonar-web/src')
4 files changed, 72 insertions, 12 deletions
diff --git a/server/sonar-web/src/main/js/apps/settings/components/AdditionalCategories.tsx b/server/sonar-web/src/main/js/apps/settings/components/AdditionalCategories.tsx index 92025b7dec3..91ad6e89589 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/AdditionalCategories.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/AdditionalCategories.tsx @@ -45,6 +45,7 @@ export interface AdditionalCategory { availableGlobally: boolean; availableForProject: boolean; displayTab: boolean; + requiresBranchesEnabled?: boolean; } export const ADDITIONAL_CATEGORIES: AdditionalCategory[] = [ @@ -78,7 +79,8 @@ export const ADDITIONAL_CATEGORIES: AdditionalCategory[] = [ renderComponent: getPullRequestDecorationComponent, availableGlobally: true, availableForProject: false, - displayTab: true + displayTab: true, + requiresBranchesEnabled: true }, { key: PULL_REQUEST_DECORATION_BINDING_CATEGORY, @@ -86,7 +88,8 @@ export const ADDITIONAL_CATEGORIES: AdditionalCategory[] = [ renderComponent: getPullRequestDecorationBindingComponent, availableGlobally: false, availableForProject: true, - displayTab: true + displayTab: true, + requiresBranchesEnabled: true } ]; diff --git a/server/sonar-web/src/main/js/apps/settings/components/AllCategoriesList.tsx b/server/sonar-web/src/main/js/apps/settings/components/AllCategoriesList.tsx index 2f29a583260..d481f9b631f 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/AllCategoriesList.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/AllCategoriesList.tsx @@ -22,7 +22,7 @@ import { sortBy } from 'lodash'; import * as React from 'react'; import { connect } from 'react-redux'; import { IndexLink } from 'react-router'; -import { getSettingsAppAllCategories, Store } from '../../../store/rootReducer'; +import { getAppState, getSettingsAppAllCategories, Store } from '../../../store/rootReducer'; import { getCategoryName } from '../utils'; import { ADDITIONAL_CATEGORIES } from './AdditionalCategories'; import { CATEGORY_OVERRIDES } from './CategoryOverrides'; @@ -33,6 +33,7 @@ interface Category { } export interface CategoriesListProps { + branchesEnabled?: boolean; categories: string[]; component?: T.Component; defaultCategory: string; @@ -60,6 +61,8 @@ export class CategoriesList extends React.PureComponent<CategoriesListProps> { } render() { + const { branchesEnabled } = this.props; + const categoriesWithName = this.props.categories .filter(key => !CATEGORY_OVERRIDES[key.toLowerCase()]) .map(key => ({ @@ -67,13 +70,15 @@ export class CategoriesList extends React.PureComponent<CategoriesListProps> { name: getCategoryName(key) })) .concat( - ADDITIONAL_CATEGORIES.filter(c => c.displayTab).filter(c => - this.props.component - ? // Project settings - c.availableForProject - : // Global settings - c.availableGlobally - ) + ADDITIONAL_CATEGORIES.filter(c => c.displayTab) + .filter(c => + this.props.component + ? // Project settings + c.availableForProject + : // Global settings + c.availableGlobally + ) + .filter(c => branchesEnabled || !c.requiresBranchesEnabled) ); const sortedCategories = sortBy(categoriesWithName, category => category.name.toLowerCase()); return ( @@ -87,7 +92,8 @@ export class CategoriesList extends React.PureComponent<CategoriesListProps> { } const mapStateToProps = (state: Store) => ({ - categories: getSettingsAppAllCategories(state) + categories: getSettingsAppAllCategories(state), + branchesEnabled: getAppState(state).branchesEnabled }); export default connect(mapStateToProps)(CategoriesList); diff --git a/server/sonar-web/src/main/js/apps/settings/components/__tests__/AllCategoriesList-test.tsx b/server/sonar-web/src/main/js/apps/settings/components/__tests__/AllCategoriesList-test.tsx index 3afdf0ed3aa..ee429dee539 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/__tests__/AllCategoriesList-test.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/__tests__/AllCategoriesList-test.tsx @@ -31,7 +31,8 @@ jest.mock('../AdditionalCategories', () => ({ renderComponent: jest.fn(), availableGlobally: true, availableForProject: true, - displayTab: true + displayTab: true, + requiresBranchesEnabled: true }, { key: 'CAT_2', @@ -68,11 +69,16 @@ it('should render correctly in project mode', () => { expect(shallowRender({ component: mockComponent() })).toMatchSnapshot(); }); +it('should render correctly when branches are disabled', () => { + expect(shallowRender({ branchesEnabled: false })).toMatchSnapshot(); +}); + function shallowRender(props?: Partial<CategoriesListProps>) { const categories = ['general']; return shallow( <CategoriesList + branchesEnabled={true} categories={categories} defaultCategory="general" selectedCategory="" diff --git a/server/sonar-web/src/main/js/apps/settings/components/__tests__/__snapshots__/AllCategoriesList-test.tsx.snap b/server/sonar-web/src/main/js/apps/settings/components/__tests__/__snapshots__/AllCategoriesList-test.tsx.snap index d2529468bd1..5a1a854e1cf 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/__tests__/__snapshots__/AllCategoriesList-test.tsx.snap +++ b/server/sonar-web/src/main/js/apps/settings/components/__tests__/__snapshots__/AllCategoriesList-test.tsx.snap @@ -127,3 +127,48 @@ exports[`should render correctly in project mode 1`] = ` </li> </ul> `; + +exports[`should render correctly when branches are disabled 1`] = ` +<ul + className="side-tabs-menu" +> + <li + key="CAT_2" + > + <IndexLink + className="" + title="CAT_2_NAME" + to={ + Object { + "pathname": "/settings", + "query": Object { + "category": "cat_2", + "id": undefined, + }, + } + } + > + CAT_2_NAME + </IndexLink> + </li> + <li + key="general" + > + <IndexLink + className="" + title="general" + to={ + Object { + "pathname": "/settings", + "query": Object { + "category": undefined, + "id": undefined, + }, + } + } + > + general + </IndexLink> + </li> +</ul> +`; |