From 89442ad258d001b6a6ca03483442df14c6724731 Mon Sep 17 00:00:00 2001 From: Jeremy Davis Date: Wed, 4 Nov 2020 15:06:42 +0100 Subject: [PATCH] SONAR-14058 Add URL to azure config form --- .../AlmBindingDefinitionBox.tsx | 38 +++++++++++++--- .../components/almIntegration/AzureForm.tsx | 15 +++++++ .../components/almIntegration/AzureTab.tsx | 2 +- .../__tests__/AzureForm-test.tsx | 4 +- .../AlmBindingDefinitionBox-test.tsx.snap | 44 +++++++++++++++---- .../__snapshots__/AzureForm-test.tsx.snap | 36 ++++++++++++++- .../__snapshots__/AzureTab-test.tsx.snap | 1 + .../src/main/js/types/alm-settings.ts | 1 + .../resources/org/sonar/l10n/core.properties | 7 ++- 9 files changed, 126 insertions(+), 22 deletions(-) diff --git a/server/sonar-web/src/main/js/apps/settings/components/almIntegration/AlmBindingDefinitionBox.tsx b/server/sonar-web/src/main/js/apps/settings/components/almIntegration/AlmBindingDefinitionBox.tsx index 74203d53f70..fa55dca833d 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/almIntegration/AlmBindingDefinitionBox.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/almIntegration/AlmBindingDefinitionBox.tsx @@ -57,6 +57,7 @@ const STATUS_ICON = { }; function getImportFeatureStatus( + definition: AlmBindingDefinition, multipleDefinitions: boolean, type: AlmSettingsBindingStatusType.Success | AlmSettingsBindingStatusType.Failure ) { @@ -68,7 +69,19 @@ function getImportFeatureStatus( + + ); + } else if (!definition.url) { + return ( +
+ + {translate('settings.almintegration.feature.alm_repo_import.disabled')} + +
); @@ -111,10 +124,23 @@ export default function AlmBindingDefinitionBox(props: AlmBindingDefinitionBoxPr {!VALIDATED_ALMS.includes(alm) && ( <>
- - {importFeatureTitle} - - +
+ + {importFeatureTitle} + + +
+
+ + {translate('settings.almintegration.feature.alm_repo_import.title')} + + {getImportFeatureStatus( + definition, + multipleDefinitions, + AlmSettingsBindingStatusType.Success + )} +
@@ -148,7 +174,7 @@ export default function AlmBindingDefinitionBox(props: AlmBindingDefinitionBoxPr {translate('settings.almintegration.feature.alm_repo_import.title')} - {getImportFeatureStatus(multipleDefinitions, status.type)} + {getImportFeatureStatus(definition, multipleDefinitions, status.type)}
)} diff --git a/server/sonar-web/src/main/js/apps/settings/components/almIntegration/AzureForm.tsx b/server/sonar-web/src/main/js/apps/settings/components/almIntegration/AzureForm.tsx index fef12180192..3ce487298e1 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/almIntegration/AzureForm.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/almIntegration/AzureForm.tsx @@ -45,6 +45,21 @@ export default function AzureForm(props: AzureFormProps) { value={formData.key} /> )} + + {translate('settings.almintegration.form.url.azure.help')} +
+ https://ado.your-company.com/DefaultCollection + + } + id="url.azure" + maxLength={2000} + onFieldChange={onFieldChange} + propKey="url" + readOnly={readOnly} + value={formData.url || ''} + /> } diff --git a/server/sonar-web/src/main/js/apps/settings/components/almIntegration/__tests__/AzureForm-test.tsx b/server/sonar-web/src/main/js/apps/settings/components/almIntegration/__tests__/AzureForm-test.tsx index fe4a99102a0..3faea7a6a07 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/almIntegration/__tests__/AzureForm-test.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/almIntegration/__tests__/AzureForm-test.tsx @@ -23,8 +23,8 @@ import { mockAzureBindingDefinition } from '../../../../../helpers/mocks/alm-set import AzureForm, { AzureFormProps } from '../AzureForm'; it('should render correctly', () => { - expect(shallowRender()).toMatchSnapshot(); - expect(shallowRender({ formData: mockAzureBindingDefinition() })).toMatchSnapshot(); + expect(shallowRender()).toMatchSnapshot('create'); + expect(shallowRender({ formData: mockAzureBindingDefinition() })).toMatchSnapshot('edit'); }); function shallowRender(props: Partial = {}) { diff --git a/server/sonar-web/src/main/js/apps/settings/components/almIntegration/__tests__/__snapshots__/AlmBindingDefinitionBox-test.tsx.snap b/server/sonar-web/src/main/js/apps/settings/components/almIntegration/__tests__/__snapshots__/AlmBindingDefinitionBox-test.tsx.snap index 43bc1bfbc5b..2fd332649c6 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/almIntegration/__tests__/__snapshots__/AlmBindingDefinitionBox-test.tsx.snap +++ b/server/sonar-web/src/main/js/apps/settings/components/almIntegration/__tests__/__snapshots__/AlmBindingDefinitionBox-test.tsx.snap @@ -35,16 +35,42 @@ exports[`should render correctly: Azure DevOps 1`] = `
- - - settings.almintegration.feature.pr_decoration.title - - - + + + settings.almintegration.feature.pr_decoration.title + + + +
+
+ + + settings.almintegration.feature.alm_repo_import.title + + +
+ + settings.almintegration.feature.alm_repo_import.disabled + + +
+
+ + settings.almintegration.form.url.azure.help +
+ + https://ado.your-company.com/ + + + } + id="url.azure" + maxLength={2000} + onFieldChange={[MockFunction]} + propKey="url" + value="" + /> `; -exports[`should render correctly 2`] = ` +exports[`should render correctly: edit 1`] = ` + + settings.almintegration.form.url.azure.help +
+ + https://ado.your-company.com/ + + + } + id="url.azure" + maxLength={2000} + onFieldChange={[MockFunction]} + propKey="url" + value="" + />