diff options
author | Philippe Perrin <philippe.perrin@sonarsource.com> | 2021-03-01 15:32:34 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2021-03-03 20:12:51 +0000 |
commit | bb28f831f22cd7531dc4869d9faca52dddcf3971 (patch) | |
tree | 8ea0b15e313b5ad33bdcf9587dfa6f20ff8b8e69 /server/sonar-web/src/main | |
parent | 0f655c3dfabfbc3376cec41dd29e40c1bfbfe81e (diff) | |
download | sonarqube-bb28f831f22cd7531dc4869d9faca52dddcf3971.tar.gz sonarqube-bb28f831f22cd7531dc4869d9faca52dddcf3971.zip |
SONAR-14516 Remove hardcoded usage of 'master' from webapp
Diffstat (limited to 'server/sonar-web/src/main')
5 files changed, 201 insertions, 8 deletions
diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/App.tsx b/server/sonar-web/src/main/js/apps/projectBaseline/components/App.tsx index 32a1c54100d..ed9efc5b521 100644 --- a/server/sonar-web/src/main/js/apps/projectBaseline/components/App.tsx +++ b/server/sonar-web/src/main/js/apps/projectBaseline/components/App.tsx @@ -34,6 +34,7 @@ import BranchList from './BranchList'; import ProjectBaselineSelector from './ProjectBaselineSelector'; interface Props { + branchLike: Branch; branchLikes: BranchLike[]; branchesEnabled?: boolean; canAdmin?: boolean; @@ -120,13 +121,15 @@ export default class App extends React.PureComponent<Props, State> { } fetchLeakPeriodSetting() { + const { branchLike, branchesEnabled, component } = this.props; + this.setState({ loading: true }); Promise.all([ getNewCodePeriod(), getNewCodePeriod({ - branch: !this.props.branchesEnabled ? 'master' : undefined, - project: this.props.component.key + branch: branchesEnabled ? undefined : branchLike.name, + project: component.key }) ]).then( ([generalSetting, setting]) => { @@ -226,7 +229,7 @@ export default class App extends React.PureComponent<Props, State> { }; render() { - const { branchesEnabled, canAdmin, component } = this.props; + const { branchesEnabled, canAdmin, component, branchLike } = this.props; const { analysis, branchList, @@ -256,6 +259,7 @@ export default class App extends React.PureComponent<Props, State> { {generalSetting && overrideGeneralSetting !== undefined && ( <ProjectBaselineSelector analysis={analysis} + branch={branchLike} branchList={branchList} branchesEnabled={branchesEnabled} component={component.key} diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineSelector.tsx b/server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineSelector.tsx index 574ce1a048d..4d133b25ee1 100644 --- a/server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineSelector.tsx +++ b/server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineSelector.tsx @@ -34,6 +34,7 @@ import BranchAnalysisList from './BranchAnalysisList'; export interface ProjectBaselineSelectorProps { analysis?: string; + branch: Branch; branchList: Branch[]; branchesEnabled?: boolean; component: string; @@ -82,6 +83,7 @@ function branchToOption(b: Branch) { export default function ProjectBaselineSelector(props: ProjectBaselineSelectorProps) { const { analysis, + branch, branchList, branchesEnabled, component, @@ -163,7 +165,7 @@ export default function ProjectBaselineSelector(props: ProjectBaselineSelectorPr {selected === 'SPECIFIC_ANALYSIS' && ( <BranchAnalysisList analysis={analysis || ''} - branch="master" + branch={branch.name} component={component} onSelectAnalysis={props.onSelectAnalysis} /> diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/App-test.tsx b/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/App-test.tsx index f4c3fd6bc94..65cd8e22f08 100644 --- a/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/App-test.tsx +++ b/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/App-test.tsx @@ -35,8 +35,14 @@ jest.mock('../../../../api/newCodePeriod', () => ({ setNewCodePeriod: jest.fn().mockResolvedValue({}) })); -it('should render correctly', () => { - expect(shallowRender()).toMatchSnapshot(); +it('should render correctly', async () => { + let wrapper = shallowRender(); + await waitAndUpdate(wrapper); + expect(wrapper).toMatchSnapshot(); + + wrapper = shallowRender({ branchesEnabled: false }); + await waitAndUpdate(wrapper); + expect(wrapper).toMatchSnapshot('without branch support'); }); it('should initialize correctly', async () => { @@ -100,6 +106,7 @@ it('should handle errors gracefully', async () => { function shallowRender(props: Partial<App['props']> = {}) { return shallow<App>( <App + branchLike={mockBranch()} branchLikes={[mockMainBranch()]} branchesEnabled={true} canAdmin={true} diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/ProjectBaselineSelector-test.tsx b/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/ProjectBaselineSelector-test.tsx index 0e1cf612c5a..294b63939ee 100644 --- a/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/ProjectBaselineSelector-test.tsx +++ b/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/ProjectBaselineSelector-test.tsx @@ -19,7 +19,7 @@ */ import { shallow } from 'enzyme'; import * as React from 'react'; -import { mockMainBranch } from '../../../../helpers/mocks/branch-like'; +import { mockBranch, mockMainBranch } from '../../../../helpers/mocks/branch-like'; import ProjectBaselineSelector, { ProjectBaselineSelectorProps } from '../ProjectBaselineSelector'; it('should render correctly', () => { @@ -105,6 +105,7 @@ it('should disable the save button when date is invalid', () => { function shallowRender(props: Partial<ProjectBaselineSelectorProps> = {}) { return shallow( <ProjectBaselineSelector + branch={mockBranch()} branchList={[mockMainBranch()]} branchesEnabled={true} component="" diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/__snapshots__/App-test.tsx.snap b/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/__snapshots__/App-test.tsx.snap index 7b76b1ebb90..e642a0c6573 100644 --- a/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/__snapshots__/App-test.tsx.snap +++ b/server/sonar-web/src/main/js/apps/projectBaseline/components/__tests__/__snapshots__/App-test.tsx.snap @@ -11,7 +11,186 @@ exports[`should render correctly 1`] = ` <AppHeader canAdmin={true} /> - <DeferredSpinner /> + <div + className="panel-white project-baseline" + > + <h2> + project_baseline.default_setting + </h2> + <ProjectBaselineSelector + analysis="" + branch={ + Object { + "analysisDate": "2018-01-01", + "excludedFromPurge": true, + "isMain": false, + "name": "branch-6.7", + } + } + branchList={ + Array [ + Object { + "analysisDate": "2018-01-01", + "excludedFromPurge": true, + "isMain": true, + "name": "master", + }, + ] + } + branchesEnabled={true} + component="my-project" + currentSetting="PREVIOUS_VERSION" + days="30" + generalSetting={ + Object { + "type": "PREVIOUS_VERSION", + } + } + onCancel={[Function]} + onSelectAnalysis={[Function]} + onSelectDays={[Function]} + onSelectReferenceBranch={[Function]} + onSelectSetting={[Function]} + onSubmit={[Function]} + onToggleSpecificSetting={[Function]} + overrideGeneralSetting={true} + referenceBranch="master" + saving={false} + selected="PREVIOUS_VERSION" + /> + <div + className="spacer-top invisible" + > + <span + className="text-success" + > + <AlertSuccessIcon + className="spacer-right" + /> + settings.state.saved + </span> + </div> + <div + className="huge-spacer-top branch-baseline-selector" + > + <hr /> + <h2> + project_baseline.configure_branches + </h2> + <BranchList + branchList={ + Array [ + Object { + "analysisDate": "2018-01-01", + "excludedFromPurge": true, + "isMain": true, + "name": "master", + }, + ] + } + component={ + Object { + "breadcrumbs": Array [], + "key": "my-project", + "name": "MyProject", + "qualifier": "TRK", + "qualityGate": Object { + "isDefault": true, + "key": "30", + "name": "Sonar way", + }, + "qualityProfiles": Array [ + Object { + "deleted": false, + "key": "my-qp", + "language": "ts", + "name": "Sonar way", + }, + ], + "tags": Array [], + } + } + inheritedSetting={ + Object { + "type": "PREVIOUS_VERSION", + "value": undefined, + } + } + /> + </div> + </div> + </div> +</Fragment> +`; + +exports[`should render correctly: without branch support 1`] = ` +<Fragment> + <Suggestions + suggestions="project_baseline" + /> + <div + className="page page-limited" + > + <AppHeader + canAdmin={true} + /> + <div + className="panel-white project-baseline" + > + <ProjectBaselineSelector + analysis="" + branch={ + Object { + "analysisDate": "2018-01-01", + "excludedFromPurge": true, + "isMain": false, + "name": "branch-6.7", + } + } + branchList={ + Array [ + Object { + "analysisDate": "2018-01-01", + "excludedFromPurge": true, + "isMain": true, + "name": "master", + }, + ] + } + branchesEnabled={false} + component="my-project" + currentSetting="PREVIOUS_VERSION" + days="30" + generalSetting={ + Object { + "type": "PREVIOUS_VERSION", + } + } + onCancel={[Function]} + onSelectAnalysis={[Function]} + onSelectDays={[Function]} + onSelectReferenceBranch={[Function]} + onSelectSetting={[Function]} + onSubmit={[Function]} + onToggleSpecificSetting={[Function]} + overrideGeneralSetting={true} + referenceBranch="master" + saving={false} + selected="PREVIOUS_VERSION" + /> + <div + className="spacer-top invisible" + > + <span + className="text-success" + > + <AlertSuccessIcon + className="spacer-right" + /> + settings.state.saved + </span> + </div> + </div> </div> </Fragment> `; |