aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src
diff options
context:
space:
mode:
authorPhilippe Perrin <philippe.perrin@sonarsource.com>2021-06-29 16:10:52 +0200
committersonartech <sonartech@sonarsource.com>2021-06-30 20:03:13 +0000
commit13737457f2588e71737ddbd5a5b3cb65e3dabb4c (patch)
treeefd4aca6d42a6bb6cdee3ea7b2c578bd616ad767 /server/sonar-web/src
parent2a02fe4f85c8d98e19e600ac3d8d0d148fd53b69 (diff)
downloadsonarqube-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.tsx11
-rw-r--r--server/sonar-web/src/main/js/app/components/__tests__/ComponentContainer-test.tsx28
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