From 36139d190e06cc9b6632362000b8738f212c0e90 Mon Sep 17 00:00:00 2001 From: Philippe Perrin Date: Thu, 28 Jan 2021 14:14:17 +0100 Subject: [PATCH] SONAR-14404 Add monorepo checkbox for Github bindings --- .../AlmSpecificForm.tsx | 6 +++ .../PRDecorationBinding.tsx | 4 +- .../__tests__/PRDecorationBinding-test.tsx | 12 ++++-- .../AlmSpecificForm-test.tsx.snap | 42 +++++++++++++++++++ .../__snapshots__/WebhookStep-test.tsx.snap | 1 + .../src/main/js/helpers/mocks/alm-settings.ts | 1 + .../src/main/js/types/alm-settings.ts | 2 + 7 files changed, 63 insertions(+), 5 deletions(-) diff --git a/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/AlmSpecificForm.tsx b/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/AlmSpecificForm.tsx index 67de027591a..6aac5329007 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/AlmSpecificForm.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/AlmSpecificForm.tsx @@ -238,6 +238,12 @@ export default function AlmSpecificForm(props: AlmSpecificFormProps) { propKey: 'summaryCommentEnabled', value: summaryCommentEnabled === undefined ? true : summaryCommentEnabled })} + {renderMonoRepoField({ + monorepoEnabled, + value: monorepo, + docLink: '/documentation/analysis/github-integration/', + onFieldChange: props.onFieldChange + })} ); case AlmKeys.GitLab: diff --git a/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/PRDecorationBinding.tsx b/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/PRDecorationBinding.tsx index f351c4d487a..3d2368ed24b 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/PRDecorationBinding.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/PRDecorationBinding.tsx @@ -202,6 +202,7 @@ export class PRDecorationBinding extends React.PureComponent { const githubKey = 'github'; const repository = 'repo/path'; const summaryCommentEnabled = true; + const monorepo = true; wrapper.setState({ - formData: { key: githubKey, repository, summaryCommentEnabled }, + formData: { key: githubKey, repository, summaryCommentEnabled, monorepo }, instances }); wrapper.instance().handleSubmit(); @@ -111,7 +112,8 @@ describe('handleSubmit', () => { almSetting: githubKey, project: PROJECT_KEY, repository, - summaryCommentEnabled + summaryCommentEnabled, + monorepo }); expect(wrapper.state().success).toBe(true); }); @@ -310,7 +312,8 @@ it('should accept submit github settings', async () => { almSetting: 'github-binding', project: PROJECT_KEY, repository: 'foo', - summaryCommentEnabled: true + summaryCommentEnabled: true, + monorepo: false }); await wrapper.instance().submitProjectAlmBinding(AlmKeys.GitHub, 'github-binding', { @@ -321,7 +324,8 @@ it('should accept submit github settings', async () => { almSetting: 'github-binding', project: PROJECT_KEY, repository: 'foo', - summaryCommentEnabled: true + summaryCommentEnabled: true, + monorepo: false }); }); diff --git a/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/__tests__/__snapshots__/AlmSpecificForm-test.tsx.snap b/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/__tests__/__snapshots__/AlmSpecificForm-test.tsx.snap index 3a91ce2c977..cc9dadc14c0 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/__tests__/__snapshots__/AlmSpecificForm-test.tsx.snap +++ b/server/sonar-web/src/main/js/apps/settings/components/pullRequestDecorationBinding/__tests__/__snapshots__/AlmSpecificForm-test.tsx.snap @@ -571,6 +571,48 @@ exports[`it should render correctly for github and monorepo=true 1`] = ` /> +
+ +
+ +
+
`; diff --git a/server/sonar-web/src/main/js/components/tutorials/jenkins/__tests__/__snapshots__/WebhookStep-test.tsx.snap b/server/sonar-web/src/main/js/components/tutorials/jenkins/__tests__/__snapshots__/WebhookStep-test.tsx.snap index 23f83edc47b..d5aa70897c0 100644 --- a/server/sonar-web/src/main/js/components/tutorials/jenkins/__tests__/__snapshots__/WebhookStep-test.tsx.snap +++ b/server/sonar-web/src/main/js/components/tutorials/jenkins/__tests__/__snapshots__/WebhookStep-test.tsx.snap @@ -144,6 +144,7 @@ exports[`it should render correctly for github: content 1`] = ` Object { "alm": "github", "key": "foo", + "monorepo": true, "repository": "PROJECT_KEY", } } diff --git a/server/sonar-web/src/main/js/helpers/mocks/alm-settings.ts b/server/sonar-web/src/main/js/helpers/mocks/alm-settings.ts index 34018f3fd9a..a1f23453a56 100644 --- a/server/sonar-web/src/main/js/helpers/mocks/alm-settings.ts +++ b/server/sonar-web/src/main/js/helpers/mocks/alm-settings.ts @@ -118,6 +118,7 @@ export function mockProjectGithubBindingResponse( alm: AlmKeys.GitHub, key: 'foo', repository: 'PROJECT_KEY', + monorepo: true, ...overrides }; } diff --git a/server/sonar-web/src/main/js/types/alm-settings.ts b/server/sonar-web/src/main/js/types/alm-settings.ts index 148d3b08950..08d14166359 100644 --- a/server/sonar-web/src/main/js/types/alm-settings.ts +++ b/server/sonar-web/src/main/js/types/alm-settings.ts @@ -79,6 +79,7 @@ export interface ProjectBitbucketBindingResponse extends ProjectAlmBindingRespon export interface ProjectGitHubBindingResponse extends ProjectAlmBindingResponse { alm: AlmKeys.GitHub; repository: string; + monorepo: boolean; } export interface ProjectGitLabBindingResponse extends ProjectAlmBindingResponse { @@ -107,6 +108,7 @@ export interface BitbucketProjectAlmBindingParams extends ProjectAlmBindingParam export interface GithubProjectAlmBindingParams extends ProjectAlmBindingParams { repository: string; summaryCommentEnabled: boolean; + monorepo: boolean; } export interface GitlabProjectAlmBindingParams extends ProjectAlmBindingParams { -- 2.39.5