diff options
author | Philippe Perrin <philippe.perrin@sonarsource.com> | 2021-06-29 16:10:52 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2021-06-30 20:03:13 +0000 |
commit | 13737457f2588e71737ddbd5a5b3cb65e3dabb4c (patch) | |
tree | efd4aca6d42a6bb6cdee3ea7b2c578bd616ad767 /server/sonar-web/src | |
parent | 2a02fe4f85c8d98e19e600ac3d8d0d148fd53b69 (diff) | |
download | sonarqube-13737457f2588e71737ddbd5a5b3cb65e3dabb4c.tar.gz sonarqube-13737457f2588e71737ddbd5a5b3cb65e3dabb4c.zip |
SONAR-14872 Scope api calls to project only
Diffstat (limited to 'server/sonar-web/src')
-rw-r--r-- | server/sonar-web/src/main/js/app/components/ComponentContainer.tsx | 11 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx | 28 |
2 files changed, 37 insertions, 2 deletions
diff --git a/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx b/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx index d1cf0ae7c18..31f7ea3ecf6 100644 --- a/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx +++ b/server/sonar-web/src/main/js/app/components/ComponentContainer.tsx @@ -133,7 +133,10 @@ export class ComponentContainer extends React.PureComponent<Props, State> { const { branchLike, branchLikes } = await this.fetchBranches(componentWithQualifier); - const projectBinding = await getProjectAlmBinding(key).catch(() => undefined); + let projectBinding; + if (componentWithQualifier.qualifier === ComponentQualifier.Project) { + projectBinding = await getProjectAlmBinding(key).catch(() => undefined); + } if (this.mounted) { this.setState({ @@ -247,7 +250,11 @@ export class ComponentContainer extends React.PureComponent<Props, State> { }; fetchProjectBindingErrors = async (component: T.Component) => { - if (component.analysisDate === undefined && this.props.appState.branchesEnabled) { + if ( + component.qualifier === ComponentQualifier.Project && + component.analysisDate === undefined && + this.props.appState.branchesEnabled + ) { const projectBindingErrors = await validateProjectAlmBinding(component.key).catch( () => undefined ); diff --git a/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx b/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx index 84fc4a8bb52..e46025122e9 100644 --- a/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx +++ b/server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx @@ -97,6 +97,13 @@ it('changes component', () => { }); it('loads the project binding, if any', async () => { + const component = mockComponent({ + breadcrumbs: [{ key: 'foo', name: 'foo', qualifier: ComponentQualifier.Project }] + }); + (getComponentNavigation as jest.Mock).mockResolvedValueOnce({}); + (getComponentData as jest.Mock<any>) + .mockResolvedValueOnce({ component }) + .mockResolvedValueOnce({ component }); (getProjectAlmBinding as jest.Mock).mockResolvedValueOnce(undefined).mockResolvedValueOnce({ alm: AlmKeys.GitHub, key: 'foo' @@ -340,6 +347,27 @@ describe('should correctly validate the project binding depending on the context }); }); +it.each([ + [ComponentQualifier.Application], + [ComponentQualifier.Portfolio], + [ComponentQualifier.SubPortfolio] +])( + 'should not care about PR decoration settings for %s', + async (componentQualifier: ComponentQualifier) => { + const component = mockComponent({ + breadcrumbs: [{ key: 'foo', name: 'Foo', qualifier: componentQualifier }] + }); + (getComponentNavigation as jest.Mock).mockResolvedValueOnce({}); + (getComponentData as jest.Mock<any>).mockResolvedValueOnce({ component }); + + const wrapper = shallowRender(); + await waitAndUpdate(wrapper); + + expect(getProjectAlmBinding).not.toHaveBeenCalled(); + expect(validateProjectAlmBinding).not.toHaveBeenCalled(); + } +); + function shallowRender(props: Partial<ComponentContainer['props']> = {}) { return shallow<ComponentContainer>( <ComponentContainer |