From 32f17097a4dbc31aff2de267d9fe148308616a34 Mon Sep 17 00:00:00 2001 From: Andrey Luiz Date: Mon, 21 Aug 2023 14:37:56 +0200 Subject: [PATCH] SONAR-20156 Rename new code period to new code definition (#9110) Co-authored-by: Ambroise C --- ...ock.ts => NewCodeDefinitionServiceMock.ts} | 24 ++++++++++--------- ...{newCodePeriod.ts => newCodeDefinition.ts} | 8 +++---- .../src/main/js/app/utils/startReactApp.tsx | 4 ++-- .../create/project/__tests__/Azure-it.tsx | 6 ++--- .../create/project/__tests__/Bitbucket-it.tsx | 6 ++--- .../project/__tests__/BitbucketCloud-it.tsx | 6 ++--- .../__tests__/CreateProjectPage-it.tsx | 6 ++--- .../create/project/__tests__/GitHub-it.tsx | 6 ++--- .../create/project/__tests__/GitLab-it.tsx | 6 ++--- .../create/project/__tests__/Manual-it.tsx | 20 ++++++++-------- .../components/AppHeader.tsx | 0 .../components/BranchAnalysisList.tsx | 0 .../components/BranchAnalysisListRenderer.tsx | 0 .../components/BranchList.tsx | 13 ++++++---- .../components/BranchListRow.tsx | 0 .../BranchNewCodeDefinitionSettingModal.tsx} | 14 +++++------ .../NewCodeDefinitionSettingAnalysis.tsx} | 2 +- ...wCodeDefinitionSettingReferenceBranch.tsx} | 4 +++- .../ProjectNewCodeDefinitionApp.tsx} | 22 ++++++++++------- .../ProjectNewCodeDefinitionSelector.tsx} | 10 ++++---- .../ProjectNewCodeDefinitionApp-it.tsx} | 6 ++--- .../components/__tests__/utils-test.ts | 0 .../routes.tsx | 4 ++-- .../styles.css | 0 .../utils.ts | 0 .../components/AdditionalCategories.tsx | 8 +++---- ...ewCodePeriod.tsx => NewCodeDefinition.tsx} | 8 +++---- ...Period-it.tsx => NewCodeDefinition-it.tsx} | 10 ++++---- .../NCDAutoUpdateMessage.tsx | 4 ++-- .../NewCodeDefinitionSelector.tsx | 4 ++-- .../__tests__/NCDAutoUpdateMessage-test.tsx | 8 +++---- 31 files changed, 110 insertions(+), 99 deletions(-) rename server/sonar-web/src/main/js/api/mocks/{NewCodePeriodsServiceMock.ts => NewCodeDefinitionServiceMock.ts} (84%) rename server/sonar-web/src/main/js/api/{newCodePeriod.ts => newCodeDefinition.ts} (87%) rename server/sonar-web/src/main/js/apps/{projectBaseline => projectNewCode}/components/AppHeader.tsx (100%) rename server/sonar-web/src/main/js/apps/{projectBaseline => projectNewCode}/components/BranchAnalysisList.tsx (100%) rename server/sonar-web/src/main/js/apps/{projectBaseline => projectNewCode}/components/BranchAnalysisListRenderer.tsx (100%) rename server/sonar-web/src/main/js/apps/{projectBaseline => projectNewCode}/components/BranchList.tsx (94%) rename server/sonar-web/src/main/js/apps/{projectBaseline => projectNewCode}/components/BranchListRow.tsx (100%) rename server/sonar-web/src/main/js/apps/{projectBaseline/components/BranchBaselineSettingModal.tsx => projectNewCode/components/BranchNewCodeDefinitionSettingModal.tsx} (94%) rename server/sonar-web/src/main/js/apps/{projectBaseline/components/BaselineSettingAnalysis.tsx => projectNewCode/components/NewCodeDefinitionSettingAnalysis.tsx} (94%) rename server/sonar-web/src/main/js/apps/{projectBaseline/components/BaselineSettingReferenceBranch.tsx => projectNewCode/components/NewCodeDefinitionSettingReferenceBranch.tsx} (97%) rename server/sonar-web/src/main/js/apps/{projectBaseline/components/ProjectBaselineApp.tsx => projectNewCode/components/ProjectNewCodeDefinitionApp.tsx} (95%) rename server/sonar-web/src/main/js/apps/{projectBaseline/components/ProjectBaselineSelector.tsx => projectNewCode/components/ProjectNewCodeDefinitionSelector.tsx} (95%) rename server/sonar-web/src/main/js/apps/{projectBaseline/components/__tests__/ProjectBaselineApp-it.tsx => projectNewCode/components/__tests__/ProjectNewCodeDefinitionApp-it.tsx} (98%) rename server/sonar-web/src/main/js/apps/{projectBaseline => projectNewCode}/components/__tests__/utils-test.ts (100%) rename server/sonar-web/src/main/js/apps/{projectBaseline => projectNewCode}/routes.tsx (84%) rename server/sonar-web/src/main/js/apps/{projectBaseline => projectNewCode}/styles.css (100%) rename server/sonar-web/src/main/js/apps/{projectBaseline => projectNewCode}/utils.ts (100%) rename server/sonar-web/src/main/js/apps/settings/components/{NewCodePeriod.tsx => NewCodeDefinition.tsx} (97%) rename server/sonar-web/src/main/js/apps/settings/components/__tests__/{NewCodePeriod-it.tsx => NewCodeDefinition-it.tsx} (95%) diff --git a/server/sonar-web/src/main/js/api/mocks/NewCodePeriodsServiceMock.ts b/server/sonar-web/src/main/js/api/mocks/NewCodeDefinitionServiceMock.ts similarity index 84% rename from server/sonar-web/src/main/js/api/mocks/NewCodePeriodsServiceMock.ts rename to server/sonar-web/src/main/js/api/mocks/NewCodeDefinitionServiceMock.ts index 0d429a7af6a..147246c309e 100644 --- a/server/sonar-web/src/main/js/api/mocks/NewCodePeriodsServiceMock.ts +++ b/server/sonar-web/src/main/js/api/mocks/NewCodeDefinitionServiceMock.ts @@ -28,14 +28,14 @@ import { NewCodeDefinitionType, } from '../../types/new-code-definition'; import { - getNewCodePeriod, - listBranchesNewCodePeriod, - resetNewCodePeriod, - setNewCodePeriod, -} from '../newCodePeriod'; + getNewCodeDefinition, + listBranchesNewCodeDefinition, + resetNewCodeDefinition, + setNewCodeDefinition, +} from '../newCodeDefinition'; -jest.mock('../newCodePeriod'); -export default class NewCodePeriodsServiceMock { +jest.mock('../newCodeDefinition'); +export default class NewCodeDefinitionServiceMock { #defaultNewCodePeriod = mockNewCodePeriod({ inherited: true }); #defaultListBranchesNewCode = [ mockNewCodePeriodBranch({ inherited: true, branchKey: 'main' }), @@ -52,10 +52,12 @@ export default class NewCodePeriodsServiceMock { constructor() { this.#newCodePeriod = cloneDeep(this.#defaultNewCodePeriod); this.#listBranchesNewCode = cloneDeep(this.#defaultListBranchesNewCode); - jest.mocked(getNewCodePeriod).mockImplementation(this.handleGetNewCodePeriod); - jest.mocked(setNewCodePeriod).mockImplementation(this.handleSetNewCodePeriod); - jest.mocked(resetNewCodePeriod).mockImplementation(this.handleResetNewCodePeriod); - jest.mocked(listBranchesNewCodePeriod).mockImplementation(this.handleListBranchesNewCodePeriod); + jest.mocked(getNewCodeDefinition).mockImplementation(this.handleGetNewCodePeriod); + jest.mocked(setNewCodeDefinition).mockImplementation(this.handleSetNewCodePeriod); + jest.mocked(resetNewCodeDefinition).mockImplementation(this.handleResetNewCodePeriod); + jest + .mocked(listBranchesNewCodeDefinition) + .mockImplementation(this.handleListBranchesNewCodePeriod); } handleGetNewCodePeriod = () => { diff --git a/server/sonar-web/src/main/js/api/newCodePeriod.ts b/server/sonar-web/src/main/js/api/newCodeDefinition.ts similarity index 87% rename from server/sonar-web/src/main/js/api/newCodePeriod.ts rename to server/sonar-web/src/main/js/api/newCodeDefinition.ts index ca56e5f17ea..19d0e8150cd 100644 --- a/server/sonar-web/src/main/js/api/newCodePeriod.ts +++ b/server/sonar-web/src/main/js/api/newCodeDefinition.ts @@ -25,14 +25,14 @@ import { NewCodeDefinitionType, } from '../types/new-code-definition'; -export function getNewCodePeriod(data?: { +export function getNewCodeDefinition(data?: { project?: string; branch?: string; }): Promise> { return getJSON('/api/new_code_periods/show', data).catch(throwGlobalError); } -export function setNewCodePeriod(data: { +export function setNewCodeDefinition(data: { project?: string; branch?: string; type: NewCodeDefinitionType; @@ -41,11 +41,11 @@ export function setNewCodePeriod(data: { return post('/api/new_code_periods/set', data).catch(throwGlobalError); } -export function resetNewCodePeriod(data: { project?: string; branch?: string }): Promise { +export function resetNewCodeDefinition(data: { project?: string; branch?: string }): Promise { return post('/api/new_code_periods/unset', data).catch(throwGlobalError); } -export function listBranchesNewCodePeriod(data: { +export function listBranchesNewCodeDefinition(data: { project: string; }): Promise<{ newCodePeriods: NewCodeDefinitionBranch[] }> { return getJSON('/api/new_code_periods/list', data).catch(throwGlobalError); diff --git a/server/sonar-web/src/main/js/app/utils/startReactApp.tsx b/server/sonar-web/src/main/js/app/utils/startReactApp.tsx index 370f86af3fa..8b02cbeab11 100644 --- a/server/sonar-web/src/main/js/app/utils/startReactApp.tsx +++ b/server/sonar-web/src/main/js/app/utils/startReactApp.tsx @@ -40,13 +40,13 @@ import overviewRoutes from '../../apps/overview/routes'; import permissionTemplatesRoutes from '../../apps/permission-templates/routes'; import { globalPermissionsRoutes, projectPermissionsRoutes } from '../../apps/permissions/routes'; import projectActivityRoutes from '../../apps/projectActivity/routes'; -import projectBaselineRoutes from '../../apps/projectBaseline/routes'; import projectBranchesRoutes from '../../apps/projectBranches/routes'; import ProjectDeletionApp from '../../apps/projectDeletion/App'; import projectDumpRoutes from '../../apps/projectDump/routes'; import projectInfoRoutes from '../../apps/projectInformation/routes'; import ProjectKeyApp from '../../apps/projectKey/ProjectKeyApp'; import ProjectLinksApp from '../../apps/projectLinks/ProjectLinksApp'; +import projectNewCodeDefinitionRoutes from '../../apps/projectNewCode/routes'; import projectQualityGateRoutes from '../../apps/projectQualityGate/routes'; import projectQualityProfilesRoutes from '../../apps/projectQualityProfiles/routes'; import projectsRoutes from '../../apps/projects/routes'; @@ -127,7 +127,7 @@ function renderComponentRoutes() { element={} /> {backgroundTasksRoutes()} - {projectBaselineRoutes()} + {projectNewCodeDefinitionRoutes()} {projectBranchesRoutes()} {projectDumpRoutes()} {settingsRoutes()} diff --git a/server/sonar-web/src/main/js/apps/create/project/__tests__/Azure-it.tsx b/server/sonar-web/src/main/js/apps/create/project/__tests__/Azure-it.tsx index db9b1a3b2ba..747cc0a9005 100644 --- a/server/sonar-web/src/main/js/apps/create/project/__tests__/Azure-it.tsx +++ b/server/sonar-web/src/main/js/apps/create/project/__tests__/Azure-it.tsx @@ -25,7 +25,7 @@ import selectEvent from 'react-select-event'; import { searchAzureRepositories } from '../../../../api/alm-integrations'; import AlmIntegrationsServiceMock from '../../../../api/mocks/AlmIntegrationsServiceMock'; import AlmSettingsServiceMock from '../../../../api/mocks/AlmSettingsServiceMock'; -import NewCodePeriodsServiceMock from '../../../../api/mocks/NewCodePeriodsServiceMock'; +import NewCodeDefinitionServiceMock from '../../../../api/mocks/NewCodeDefinitionServiceMock'; import { renderApp } from '../../../../helpers/testReactTestingUtils'; import { byLabelText, byRole, byText } from '../../../../helpers/testSelector'; import CreateProjectPage from '../CreateProjectPage'; @@ -35,7 +35,7 @@ jest.mock('../../../../api/alm-settings'); let almIntegrationHandler: AlmIntegrationsServiceMock; let almSettingsHandler: AlmSettingsServiceMock; -let newCodePeriodHandler: NewCodePeriodsServiceMock; +let newCodePeriodHandler: NewCodeDefinitionServiceMock; const ui = { azureCreateProjectButton: byText('onboarding.create_project.select_method.azure'), @@ -54,7 +54,7 @@ beforeAll(() => { }); almIntegrationHandler = new AlmIntegrationsServiceMock(); almSettingsHandler = new AlmSettingsServiceMock(); - newCodePeriodHandler = new NewCodePeriodsServiceMock(); + newCodePeriodHandler = new NewCodeDefinitionServiceMock(); }); beforeEach(() => { diff --git a/server/sonar-web/src/main/js/apps/create/project/__tests__/Bitbucket-it.tsx b/server/sonar-web/src/main/js/apps/create/project/__tests__/Bitbucket-it.tsx index 460e9f73850..1072dfe83cc 100644 --- a/server/sonar-web/src/main/js/apps/create/project/__tests__/Bitbucket-it.tsx +++ b/server/sonar-web/src/main/js/apps/create/project/__tests__/Bitbucket-it.tsx @@ -25,7 +25,7 @@ import selectEvent from 'react-select-event'; import { searchForBitbucketServerRepositories } from '../../../../api/alm-integrations'; import AlmIntegrationsServiceMock from '../../../../api/mocks/AlmIntegrationsServiceMock'; import AlmSettingsServiceMock from '../../../../api/mocks/AlmSettingsServiceMock'; -import NewCodePeriodsServiceMock from '../../../../api/mocks/NewCodePeriodsServiceMock'; +import NewCodeDefinitionServiceMock from '../../../../api/mocks/NewCodeDefinitionServiceMock'; import { renderApp } from '../../../../helpers/testReactTestingUtils'; import { byLabelText, byRole, byText } from '../../../../helpers/testSelector'; import CreateProjectPage from '../CreateProjectPage'; @@ -35,7 +35,7 @@ jest.mock('../../../../api/alm-settings'); let almIntegrationHandler: AlmIntegrationsServiceMock; let almSettingsHandler: AlmSettingsServiceMock; -let newCodePeriodHandler: NewCodePeriodsServiceMock; +let newCodePeriodHandler: NewCodeDefinitionServiceMock; const ui = { bitbucketServerCreateProjectButton: byText('onboarding.create_project.select_method.bitbucket'), @@ -53,7 +53,7 @@ beforeAll(() => { }); almIntegrationHandler = new AlmIntegrationsServiceMock(); almSettingsHandler = new AlmSettingsServiceMock(); - newCodePeriodHandler = new NewCodePeriodsServiceMock(); + newCodePeriodHandler = new NewCodeDefinitionServiceMock(); }); beforeEach(() => { diff --git a/server/sonar-web/src/main/js/apps/create/project/__tests__/BitbucketCloud-it.tsx b/server/sonar-web/src/main/js/apps/create/project/__tests__/BitbucketCloud-it.tsx index 9cd94893473..8cf355084da 100644 --- a/server/sonar-web/src/main/js/apps/create/project/__tests__/BitbucketCloud-it.tsx +++ b/server/sonar-web/src/main/js/apps/create/project/__tests__/BitbucketCloud-it.tsx @@ -25,7 +25,7 @@ import selectEvent from 'react-select-event'; import { searchForBitbucketCloudRepositories } from '../../../../api/alm-integrations'; import AlmIntegrationsServiceMock from '../../../../api/mocks/AlmIntegrationsServiceMock'; import AlmSettingsServiceMock from '../../../../api/mocks/AlmSettingsServiceMock'; -import NewCodePeriodsServiceMock from '../../../../api/mocks/NewCodePeriodsServiceMock'; +import NewCodeDefinitionServiceMock from '../../../../api/mocks/NewCodeDefinitionServiceMock'; import { renderApp } from '../../../../helpers/testReactTestingUtils'; import { byLabelText, byRole, byText } from '../../../../helpers/testSelector'; import CreateProjectPage from '../CreateProjectPage'; @@ -36,7 +36,7 @@ jest.mock('../../../../api/alm-settings'); let almIntegrationHandler: AlmIntegrationsServiceMock; let almSettingsHandler: AlmSettingsServiceMock; -let newCodePeriodHandler: NewCodePeriodsServiceMock; +let newCodePeriodHandler: NewCodeDefinitionServiceMock; const ui = { bitbucketCloudCreateProjectButton: byText( @@ -57,7 +57,7 @@ beforeAll(() => { }); almIntegrationHandler = new AlmIntegrationsServiceMock(); almSettingsHandler = new AlmSettingsServiceMock(); - newCodePeriodHandler = new NewCodePeriodsServiceMock(); + newCodePeriodHandler = new NewCodeDefinitionServiceMock(); }); beforeEach(() => { diff --git a/server/sonar-web/src/main/js/apps/create/project/__tests__/CreateProjectPage-it.tsx b/server/sonar-web/src/main/js/apps/create/project/__tests__/CreateProjectPage-it.tsx index bd2d47f5fbe..fc26be28834 100644 --- a/server/sonar-web/src/main/js/apps/create/project/__tests__/CreateProjectPage-it.tsx +++ b/server/sonar-web/src/main/js/apps/create/project/__tests__/CreateProjectPage-it.tsx @@ -22,7 +22,7 @@ import { screen } from '@testing-library/react'; import * as React from 'react'; import AlmIntegrationsServiceMock from '../../../../api/mocks/AlmIntegrationsServiceMock'; import AlmSettingsServiceMock from '../../../../api/mocks/AlmSettingsServiceMock'; -import NewCodePeriodsServiceMock from '../../../../api/mocks/NewCodePeriodsServiceMock'; +import NewCodeDefinitionServiceMock from '../../../../api/mocks/NewCodeDefinitionServiceMock'; import { mockAppState } from '../../../../helpers/testMocks'; import { renderApp } from '../../../../helpers/testReactTestingUtils'; import { AlmKeys } from '../../../../types/alm-settings'; @@ -33,7 +33,7 @@ jest.mock('../../../../api/alm-settings'); let almIntegrationHandler: AlmIntegrationsServiceMock; let almSettingsHandler: AlmSettingsServiceMock; -let newCodePeriodHandler: NewCodePeriodsServiceMock; +let newCodePeriodHandler: NewCodeDefinitionServiceMock; const original = window.location; @@ -44,7 +44,7 @@ beforeAll(() => { }); almIntegrationHandler = new AlmIntegrationsServiceMock(); almSettingsHandler = new AlmSettingsServiceMock(); - newCodePeriodHandler = new NewCodePeriodsServiceMock(); + newCodePeriodHandler = new NewCodeDefinitionServiceMock(); }); beforeEach(() => { diff --git a/server/sonar-web/src/main/js/apps/create/project/__tests__/GitHub-it.tsx b/server/sonar-web/src/main/js/apps/create/project/__tests__/GitHub-it.tsx index c9244c31a63..96243570673 100644 --- a/server/sonar-web/src/main/js/apps/create/project/__tests__/GitHub-it.tsx +++ b/server/sonar-web/src/main/js/apps/create/project/__tests__/GitHub-it.tsx @@ -25,7 +25,7 @@ import selectEvent from 'react-select-event'; import { getGithubRepositories } from '../../../../api/alm-integrations'; import AlmIntegrationsServiceMock from '../../../../api/mocks/AlmIntegrationsServiceMock'; import AlmSettingsServiceMock from '../../../../api/mocks/AlmSettingsServiceMock'; -import NewCodePeriodsServiceMock from '../../../../api/mocks/NewCodePeriodsServiceMock'; +import NewCodeDefinitionServiceMock from '../../../../api/mocks/NewCodeDefinitionServiceMock'; import { renderApp } from '../../../../helpers/testReactTestingUtils'; import { byLabelText, byText } from '../../../../helpers/testSelector'; import CreateProjectPage from '../CreateProjectPage'; @@ -37,7 +37,7 @@ const original = window.location; let almIntegrationHandler: AlmIntegrationsServiceMock; let almSettingsHandler: AlmSettingsServiceMock; -let newCodePeriodHandler: NewCodePeriodsServiceMock; +let newCodePeriodHandler: NewCodeDefinitionServiceMock; const ui = { githubCreateProjectButton: byText('onboarding.create_project.select_method.github'), @@ -52,7 +52,7 @@ beforeAll(() => { }); almIntegrationHandler = new AlmIntegrationsServiceMock(); almSettingsHandler = new AlmSettingsServiceMock(); - newCodePeriodHandler = new NewCodePeriodsServiceMock(); + newCodePeriodHandler = new NewCodeDefinitionServiceMock(); }); beforeEach(() => { diff --git a/server/sonar-web/src/main/js/apps/create/project/__tests__/GitLab-it.tsx b/server/sonar-web/src/main/js/apps/create/project/__tests__/GitLab-it.tsx index 1fa6e4ee751..43d9f8d11f0 100644 --- a/server/sonar-web/src/main/js/apps/create/project/__tests__/GitLab-it.tsx +++ b/server/sonar-web/src/main/js/apps/create/project/__tests__/GitLab-it.tsx @@ -24,7 +24,7 @@ import selectEvent from 'react-select-event'; import { getGitlabProjects } from '../../../../api/alm-integrations'; import AlmIntegrationsServiceMock from '../../../../api/mocks/AlmIntegrationsServiceMock'; import AlmSettingsServiceMock from '../../../../api/mocks/AlmSettingsServiceMock'; -import NewCodePeriodsServiceMock from '../../../../api/mocks/NewCodePeriodsServiceMock'; +import NewCodeDefinitionServiceMock from '../../../../api/mocks/NewCodeDefinitionServiceMock'; import { renderApp } from '../../../../helpers/testReactTestingUtils'; import { byLabelText, byRole, byText } from '../../../../helpers/testSelector'; import CreateProjectPage from '../CreateProjectPage'; @@ -34,7 +34,7 @@ jest.mock('../../../../api/alm-settings'); let almIntegrationHandler: AlmIntegrationsServiceMock; let almSettingsHandler: AlmSettingsServiceMock; -let newCodePeriodHandler: NewCodePeriodsServiceMock; +let newCodePeriodHandler: NewCodeDefinitionServiceMock; const ui = { gitlabCreateProjectButton: byText('onboarding.create_project.select_method.gitlab'), @@ -54,7 +54,7 @@ beforeAll(() => { }); almIntegrationHandler = new AlmIntegrationsServiceMock(); almSettingsHandler = new AlmSettingsServiceMock(); - newCodePeriodHandler = new NewCodePeriodsServiceMock(); + newCodePeriodHandler = new NewCodeDefinitionServiceMock(); }); beforeEach(() => { diff --git a/server/sonar-web/src/main/js/apps/create/project/__tests__/Manual-it.tsx b/server/sonar-web/src/main/js/apps/create/project/__tests__/Manual-it.tsx index 8bf0af0edd2..a0563c51d6a 100644 --- a/server/sonar-web/src/main/js/apps/create/project/__tests__/Manual-it.tsx +++ b/server/sonar-web/src/main/js/apps/create/project/__tests__/Manual-it.tsx @@ -21,8 +21,8 @@ import userEvent from '@testing-library/user-event'; import { UserEvent } from '@testing-library/user-event/dist/types/setup/setup'; import * as React from 'react'; import AlmSettingsServiceMock from '../../../../api/mocks/AlmSettingsServiceMock'; -import NewCodePeriodsServiceMock from '../../../../api/mocks/NewCodePeriodsServiceMock'; -import { getNewCodePeriod } from '../../../../api/newCodePeriod'; +import NewCodeDefinitionServiceMock from '../../../../api/mocks/NewCodeDefinitionServiceMock'; +import { getNewCodeDefinition } from '../../../../api/newCodeDefinition'; import { mockProject } from '../../../../helpers/mocks/projects'; import { mockAppState } from '../../../../helpers/testMocks'; import { renderApp } from '../../../../helpers/testReactTestingUtils'; @@ -31,7 +31,7 @@ import { NewCodeDefinitionType } from '../../../../types/new-code-definition'; import CreateProjectPage, { CreateProjectPageProps } from '../CreateProjectPage'; jest.mock('../../../../api/alm-settings'); -jest.mock('../../../../api/newCodePeriod'); +jest.mock('../../../../api/newCodeDefinition'); jest.mock('../../../../api/project-management', () => ({ setupManualProjectCreation: jest .fn() @@ -89,7 +89,7 @@ async function fillFormAndNext(displayName: string, user: UserEvent) { } let almSettingsHandler: AlmSettingsServiceMock; -let newCodePeriodHandler: NewCodePeriodsServiceMock; +let newCodePeriodHandler: NewCodeDefinitionServiceMock; const original = window.location; @@ -99,7 +99,7 @@ beforeAll(() => { value: { replace: jest.fn() }, }); almSettingsHandler = new AlmSettingsServiceMock(); - newCodePeriodHandler = new NewCodePeriodsServiceMock(); + newCodePeriodHandler = new NewCodeDefinitionServiceMock(); }); beforeEach(() => { @@ -122,7 +122,7 @@ it('should fill form and move to NCD selection', async () => { it('should select the global NCD when it is compliant', async () => { jest - .mocked(getNewCodePeriod) + .mocked(getNewCodeDefinition) .mockResolvedValue({ type: NewCodeDefinitionType.NumberOfDays, value: '30' }); const user = userEvent.setup(); renderCreateProject(); @@ -140,7 +140,7 @@ it('should select the global NCD when it is compliant', async () => { it('global NCD option should be disabled if not compliant', async () => { jest - .mocked(getNewCodePeriod) + .mocked(getNewCodeDefinition) .mockResolvedValue({ type: NewCodeDefinitionType.NumberOfDays, value: '96' }); const user = userEvent.setup(); renderCreateProject(); @@ -159,7 +159,7 @@ it.each([ 'should show warning message when global NCD is not compliant', async ({ canAdmin, message }) => { jest - .mocked(getNewCodePeriod) + .mocked(getNewCodeDefinition) .mockResolvedValue({ type: NewCodeDefinitionType.NumberOfDays, value: '96' }); const user = userEvent.setup(); renderCreateProject({ appState: mockAppState({ canAdmin }) }); @@ -173,7 +173,7 @@ it.each([ui.ncdOptionRefBranchRadio, ui.ncdOptionPreviousVersionRadio])( 'should override the global NCD and pick a compliant NCD', async (option) => { jest - .mocked(getNewCodePeriod) + .mocked(getNewCodeDefinition) .mockResolvedValue({ type: NewCodeDefinitionType.NumberOfDays, value: '96' }); const user = userEvent.setup(); renderCreateProject(); @@ -197,7 +197,7 @@ it.each([ui.ncdOptionRefBranchRadio, ui.ncdOptionPreviousVersionRadio])( it('number of days ignores non-numeric inputs', async () => { jest - .mocked(getNewCodePeriod) + .mocked(getNewCodeDefinition) .mockResolvedValue({ type: NewCodeDefinitionType.NumberOfDays, value: '60' }); const user = userEvent.setup(); renderCreateProject(); diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/AppHeader.tsx b/server/sonar-web/src/main/js/apps/projectNewCode/components/AppHeader.tsx similarity index 100% rename from server/sonar-web/src/main/js/apps/projectBaseline/components/AppHeader.tsx rename to server/sonar-web/src/main/js/apps/projectNewCode/components/AppHeader.tsx diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/BranchAnalysisList.tsx b/server/sonar-web/src/main/js/apps/projectNewCode/components/BranchAnalysisList.tsx similarity index 100% rename from server/sonar-web/src/main/js/apps/projectBaseline/components/BranchAnalysisList.tsx rename to server/sonar-web/src/main/js/apps/projectNewCode/components/BranchAnalysisList.tsx diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/BranchAnalysisListRenderer.tsx b/server/sonar-web/src/main/js/apps/projectNewCode/components/BranchAnalysisListRenderer.tsx similarity index 100% rename from server/sonar-web/src/main/js/apps/projectBaseline/components/BranchAnalysisListRenderer.tsx rename to server/sonar-web/src/main/js/apps/projectNewCode/components/BranchAnalysisListRenderer.tsx diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/BranchList.tsx b/server/sonar-web/src/main/js/apps/projectNewCode/components/BranchList.tsx similarity index 94% rename from server/sonar-web/src/main/js/apps/projectBaseline/components/BranchList.tsx rename to server/sonar-web/src/main/js/apps/projectNewCode/components/BranchList.tsx index ff1aa3a4329..87b0744bec1 100644 --- a/server/sonar-web/src/main/js/apps/projectBaseline/components/BranchList.tsx +++ b/server/sonar-web/src/main/js/apps/projectNewCode/components/BranchList.tsx @@ -18,7 +18,10 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import * as React from 'react'; -import { listBranchesNewCodePeriod, resetNewCodePeriod } from '../../../api/newCodePeriod'; +import { + listBranchesNewCodeDefinition, + resetNewCodeDefinition, +} from '../../../api/newCodeDefinition'; import Spinner from '../../../components/ui/Spinner'; import { isBranch, sortBranches } from '../../../helpers/branch-like'; import { translate } from '../../../helpers/l10n'; @@ -26,8 +29,8 @@ import { DEFAULT_NEW_CODE_DEFINITION_TYPE } from '../../../helpers/new-code-defi import { Branch, BranchLike, BranchWithNewCodePeriod } from '../../../types/branch-like'; import { NewCodeDefinition } from '../../../types/new-code-definition'; import { Component } from '../../../types/types'; -import BranchBaselineSettingModal from './BranchBaselineSettingModal'; import BranchListRow from './BranchListRow'; +import BranchNewCodeDefinitionSettingModal from './BranchNewCodeDefinitionSettingModal'; interface Props { branchList: Branch[]; @@ -72,7 +75,7 @@ export default class BranchList extends React.PureComponent { const project = this.props.component.key; this.setState({ loading: true }); - listBranchesNewCodePeriod({ project }).then( + listBranchesNewCodeDefinition({ project }).then( (branchSettings) => { const newCodePeriods = branchSettings.newCodePeriods ? branchSettings.newCodePeriods.filter((ncp) => !ncp.inherited) @@ -124,7 +127,7 @@ export default class BranchList extends React.PureComponent { }; resetToDefault = (branch: string) => { - return resetNewCodePeriod({ + return resetNewCodeDefinition({ project: this.props.component.key, branch, }).then(() => { @@ -170,7 +173,7 @@ export default class BranchList extends React.PureComponent { {editedBranch && ( - { +export default class BranchNewCodeDefinitionSettingModal extends React.PureComponent { mounted = false; constructor(props: Props) { @@ -109,7 +109,7 @@ export default class BranchBaselineSettingModal extends React.PureComponent - {currentSetting === NewCodeDefinitionType.SpecificAnalysis && ( - diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/BaselineSettingAnalysis.tsx b/server/sonar-web/src/main/js/apps/projectNewCode/components/NewCodeDefinitionSettingAnalysis.tsx similarity index 94% rename from server/sonar-web/src/main/js/apps/projectBaseline/components/BaselineSettingAnalysis.tsx rename to server/sonar-web/src/main/js/apps/projectNewCode/components/NewCodeDefinitionSettingAnalysis.tsx index d042123ca89..027db43c2f3 100644 --- a/server/sonar-web/src/main/js/apps/projectBaseline/components/BaselineSettingAnalysis.tsx +++ b/server/sonar-web/src/main/js/apps/projectNewCode/components/NewCodeDefinitionSettingAnalysis.tsx @@ -27,7 +27,7 @@ export interface Props { selected: boolean; } -export default function BaselineSettingAnalysis({ onSelect, selected }: Props) { +export default function NewCodeDefinitionSettingAnalysis({ onSelect, selected }: Props) { return ( ) { ); } -export default function BaselineSettingReferenceBranch(props: BaselineSettingReferenceBranchProps) { +export default function NewCodeDefinitionSettingReferenceBranch( + props: BaselineSettingReferenceBranchProps +) { const { branchList, className, disabled, referenceBranch, selected, settingLevel } = props; const currentBranch = branchList.find((b) => b.value === referenceBranch) || { diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineApp.tsx b/server/sonar-web/src/main/js/apps/projectNewCode/components/ProjectNewCodeDefinitionApp.tsx similarity index 95% rename from server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineApp.tsx rename to server/sonar-web/src/main/js/apps/projectNewCode/components/ProjectNewCodeDefinitionApp.tsx index 620c5d78653..92c1cbbe901 100644 --- a/server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineApp.tsx +++ b/server/sonar-web/src/main/js/apps/projectNewCode/components/ProjectNewCodeDefinitionApp.tsx @@ -21,7 +21,11 @@ import classNames from 'classnames'; import { debounce } from 'lodash'; import * as React from 'react'; import { Helmet } from 'react-helmet-async'; -import { getNewCodePeriod, resetNewCodePeriod, setNewCodePeriod } from '../../../api/newCodePeriod'; +import { + getNewCodeDefinition, + resetNewCodeDefinition, + setNewCodeDefinition, +} from '../../../api/newCodeDefinition'; import withAppStateContext from '../../../app/components/app-state/withAppStateContext'; import withAvailableFeatures, { WithAvailableFeaturesProps, @@ -46,7 +50,7 @@ import '../styles.css'; import { getSettingValue } from '../utils'; import AppHeader from './AppHeader'; import BranchList from './BranchList'; -import ProjectBaselineSelector from './ProjectBaselineSelector'; +import ProjectNewCodeDefinitionSelector from './ProjectNewCodeDefinitionSelector'; interface Props extends WithAvailableFeaturesProps { branchLike: Branch; @@ -71,7 +75,7 @@ interface State { success?: boolean; } -class ProjectBaselineApp extends React.PureComponent { +class ProjectNewCodeDefinitionApp extends React.PureComponent { mounted = false; state: State = { branchList: [], @@ -140,8 +144,8 @@ class ProjectBaselineApp extends React.PureComponent { this.setState({ loading: true }); Promise.all([ - getNewCodePeriod(), - getNewCodePeriod({ + getNewCodeDefinition(), + getNewCodeDefinition({ branch: this.props.hasFeature(Feature.BranchSupport) ? undefined : branchLike?.name, project: component.key, }), @@ -173,7 +177,7 @@ class ProjectBaselineApp extends React.PureComponent { resetSetting = () => { this.setState({ saving: true }); - resetNewCodePeriod({ project: this.props.component.key }).then( + resetNewCodeDefinition({ project: this.props.component.key }).then( () => { this.setState({ saving: false, @@ -233,7 +237,7 @@ class ProjectBaselineApp extends React.PureComponent { if (type) { this.setState({ saving: true }); - setNewCodePeriod({ + setNewCodeDefinition({ project: component.key, type, value, @@ -287,7 +291,7 @@ class ProjectBaselineApp extends React.PureComponent { {branchSupportEnabled &&

{translate('project_baseline.default_setting')}

} {generalSetting && overrideGeneralSetting !== undefined && ( - { } export default withComponentContext( - withAvailableFeatures(withAppStateContext(withBranchLikes(ProjectBaselineApp))) + withAvailableFeatures(withAppStateContext(withBranchLikes(ProjectNewCodeDefinitionApp))) ); diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineSelector.tsx b/server/sonar-web/src/main/js/apps/projectNewCode/components/ProjectNewCodeDefinitionSelector.tsx similarity index 95% rename from server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineSelector.tsx rename to server/sonar-web/src/main/js/apps/projectNewCode/components/ProjectNewCodeDefinitionSelector.tsx index affb46b2e5f..204f4105bf3 100644 --- a/server/sonar-web/src/main/js/apps/projectBaseline/components/ProjectBaselineSelector.tsx +++ b/server/sonar-web/src/main/js/apps/projectNewCode/components/ProjectNewCodeDefinitionSelector.tsx @@ -34,9 +34,9 @@ import { isNewCodeDefinitionCompliant } from '../../../helpers/new-code-definiti import { Branch } from '../../../types/branch-like'; import { NewCodeDefinition, NewCodeDefinitionType } from '../../../types/new-code-definition'; import { validateSetting } from '../utils'; -import BaselineSettingAnalysis from './BaselineSettingAnalysis'; -import BaselineSettingReferenceBranch from './BaselineSettingReferenceBranch'; import BranchAnalysisList from './BranchAnalysisList'; +import NewCodeDefinitionSettingAnalysis from './NewCodeDefinitionSettingAnalysis'; +import NewCodeDefinitionSettingReferenceBranch from './NewCodeDefinitionSettingReferenceBranch'; export interface ProjectBaselineSelectorProps { analysis?: string; @@ -66,7 +66,7 @@ function branchToOption(b: Branch) { return { label: b.name, value: b.name, isMain: b.isMain }; } -export default function ProjectBaselineSelector(props: ProjectBaselineSelectorProps) { +export default function ProjectNewCodeDefinitionSelector(props: ProjectBaselineSelectorProps) { const { analysis, branch, @@ -160,7 +160,7 @@ export default function ProjectBaselineSelector(props: ProjectBaselineSelectorPr selected={overrideGeneralSetting && selected === NewCodeDefinitionType.NumberOfDays} /> {branchesEnabled && ( - )} {!branchesEnabled && currentSetting === NewCodeDefinitionType.SpecificAnalysis && ( - } />; +const routes = () => } />; export default routes; diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/styles.css b/server/sonar-web/src/main/js/apps/projectNewCode/styles.css similarity index 100% rename from server/sonar-web/src/main/js/apps/projectBaseline/styles.css rename to server/sonar-web/src/main/js/apps/projectNewCode/styles.css diff --git a/server/sonar-web/src/main/js/apps/projectBaseline/utils.ts b/server/sonar-web/src/main/js/apps/projectNewCode/utils.ts similarity index 100% rename from server/sonar-web/src/main/js/apps/projectBaseline/utils.ts rename to server/sonar-web/src/main/js/apps/projectNewCode/utils.ts diff --git a/server/sonar-web/src/main/js/apps/settings/components/AdditionalCategories.tsx b/server/sonar-web/src/main/js/apps/settings/components/AdditionalCategories.tsx index 26a657948c9..a5489fc67c3 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/AdditionalCategories.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/AdditionalCategories.tsx @@ -29,11 +29,11 @@ import { NEW_CODE_PERIOD_CATEGORY, PULL_REQUEST_DECORATION_BINDING_CATEGORY, } from '../constants'; -import AlmIntegration from './almIntegration/AlmIntegration'; import { AnalysisScope } from './AnalysisScope'; -import Authentication from './authentication/Authentication'; import Languages from './Languages'; -import NewCodePeriod from './NewCodePeriod'; +import NewCodeDefinition from './NewCodeDefinition'; +import AlmIntegration from './almIntegration/AlmIntegration'; +import Authentication from './authentication/Authentication'; import PullRequestDecorationBinding from './pullRequestDecorationBinding/PRDecorationBinding'; export interface AdditionalCategoryComponentProps { @@ -110,7 +110,7 @@ function getLanguagesComponent(props: AdditionalCategoryComponentProps) { } function getNewCodePeriodComponent() { - return ; + return ; } function getAnalysisScopeComponent(props: AdditionalCategoryComponentProps) { diff --git a/server/sonar-web/src/main/js/apps/settings/components/NewCodePeriod.tsx b/server/sonar-web/src/main/js/apps/settings/components/NewCodeDefinition.tsx similarity index 97% rename from server/sonar-web/src/main/js/apps/settings/components/NewCodePeriod.tsx rename to server/sonar-web/src/main/js/apps/settings/components/NewCodeDefinition.tsx index 76a6815ad00..de5639a1a39 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/NewCodePeriod.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/NewCodeDefinition.tsx @@ -19,7 +19,7 @@ */ import * as React from 'react'; import { FormattedMessage } from 'react-intl'; -import { getNewCodePeriod, setNewCodePeriod } from '../../../api/newCodePeriod'; +import { getNewCodeDefinition, setNewCodeDefinition } from '../../../api/newCodeDefinition'; import DocLink from '../../../components/common/DocLink'; import { ResetButtonLink, SubmitButton } from '../../../components/controls/buttons'; import AlertSuccessIcon from '../../../components/icons/AlertSuccessIcon'; @@ -47,7 +47,7 @@ interface State { success: boolean; } -export default class NewCodePeriod extends React.PureComponent<{}, State> { +export default class NewCodeDefinition extends React.PureComponent<{}, State> { mounted = false; state: State = { loading: true, @@ -67,7 +67,7 @@ export default class NewCodePeriod extends React.PureComponent<{}, State> { } fetchNewCodePeriodSetting() { - getNewCodePeriod() + getNewCodeDefinition() .then(({ type, value, previousNonCompliantValue, updatedAt }) => { this.setState(({ days }) => ({ currentSetting: type, @@ -114,7 +114,7 @@ export default class NewCodePeriod extends React.PureComponent<{}, State> { const value = type === NewCodeDefinitionType.NumberOfDays ? days : undefined; this.setState({ saving: true, success: false }); - setNewCodePeriod({ + setNewCodeDefinition({ type: type as NewCodeDefinitionType, value, }).then( diff --git a/server/sonar-web/src/main/js/apps/settings/components/__tests__/NewCodePeriod-it.tsx b/server/sonar-web/src/main/js/apps/settings/components/__tests__/NewCodeDefinition-it.tsx similarity index 95% rename from server/sonar-web/src/main/js/apps/settings/components/__tests__/NewCodePeriod-it.tsx rename to server/sonar-web/src/main/js/apps/settings/components/__tests__/NewCodeDefinition-it.tsx index 8682dafab60..422a08419ed 100644 --- a/server/sonar-web/src/main/js/apps/settings/components/__tests__/NewCodePeriod-it.tsx +++ b/server/sonar-web/src/main/js/apps/settings/components/__tests__/NewCodeDefinition-it.tsx @@ -22,17 +22,17 @@ import userEvent from '@testing-library/user-event'; import * as React from 'react'; import { MessageTypes } from '../../../../api/messages'; import MessagesServiceMock from '../../../../api/mocks/MessagesServiceMock'; -import NewCodePeriodsServiceMock from '../../../../api/mocks/NewCodePeriodsServiceMock'; +import NewCodeDefinitionServiceMock from '../../../../api/mocks/NewCodeDefinitionServiceMock'; import { renderComponent } from '../../../../helpers/testReactTestingUtils'; import { byLabelText, byRole, byText } from '../../../../helpers/testSelector'; import { NewCodeDefinitionType } from '../../../../types/new-code-definition'; -import NewCodePeriod from '../NewCodePeriod'; +import NewCodeDefinition from '../NewCodeDefinition'; -let newCodeMock: NewCodePeriodsServiceMock; +let newCodeMock: NewCodeDefinitionServiceMock; let messagesMock: MessagesServiceMock; beforeAll(() => { - newCodeMock = new NewCodePeriodsServiceMock(); + newCodeMock = new NewCodeDefinitionServiceMock(); messagesMock = new MessagesServiceMock(); }); @@ -161,5 +161,5 @@ it('does not display information message when NCD is automatically updated if me }); function renderNewCodePeriod() { - return renderComponent(); + return renderComponent(); } diff --git a/server/sonar-web/src/main/js/components/new-code-definition/NCDAutoUpdateMessage.tsx b/server/sonar-web/src/main/js/components/new-code-definition/NCDAutoUpdateMessage.tsx index cecc314dc86..e9386faeb7b 100644 --- a/server/sonar-web/src/main/js/components/new-code-definition/NCDAutoUpdateMessage.tsx +++ b/server/sonar-web/src/main/js/components/new-code-definition/NCDAutoUpdateMessage.tsx @@ -20,7 +20,7 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; import { MessageTypes, checkMessageDismissed, setMessageDismissed } from '../../api/messages'; -import { getNewCodePeriod } from '../../api/newCodePeriod'; +import { getNewCodeDefinition } from '../../api/newCodeDefinition'; import { CurrentUserContextInterface } from '../../app/components/current-user/CurrentUserContext'; import withCurrentUserContext from '../../app/components/current-user/withCurrentUserContext'; import { NEW_CODE_PERIOD_CATEGORY } from '../../apps/settings/constants'; @@ -80,7 +80,7 @@ function NCDAutoUpdateMessage(props: NCDAutoUpdateMessageProps) { useEffect(() => { async function fetchNewCodeDefinition() { - const newCodeDefinition = await getNewCodePeriod( + const newCodeDefinition = await getNewCodeDefinition( component && { project: component.key, } diff --git a/server/sonar-web/src/main/js/components/new-code-definition/NewCodeDefinitionSelector.tsx b/server/sonar-web/src/main/js/components/new-code-definition/NewCodeDefinitionSelector.tsx index 47dd557065b..2b2b7587c0f 100644 --- a/server/sonar-web/src/main/js/components/new-code-definition/NewCodeDefinitionSelector.tsx +++ b/server/sonar-web/src/main/js/components/new-code-definition/NewCodeDefinitionSelector.tsx @@ -27,7 +27,7 @@ import { } from 'design-system'; import { noop } from 'lodash'; import * as React from 'react'; -import { getNewCodePeriod } from '../../api/newCodePeriod'; +import { getNewCodeDefinition } from '../../api/newCodeDefinition'; import { translate } from '../../helpers/l10n'; import { getNumberOfDaysDefaultValue, @@ -88,7 +88,7 @@ export default function NewCodeDefinitionSelector(props: Props) { React.useEffect(() => { function fetchGlobalNcd() { - getNewCodePeriod().then(setGlobalNcd, noop); + getNewCodeDefinition().then(setGlobalNcd, noop); } fetchGlobalNcd(); diff --git a/server/sonar-web/src/main/js/components/new-code-definition/__tests__/NCDAutoUpdateMessage-test.tsx b/server/sonar-web/src/main/js/components/new-code-definition/__tests__/NCDAutoUpdateMessage-test.tsx index fc022703eeb..d8d89f16943 100644 --- a/server/sonar-web/src/main/js/components/new-code-definition/__tests__/NCDAutoUpdateMessage-test.tsx +++ b/server/sonar-web/src/main/js/components/new-code-definition/__tests__/NCDAutoUpdateMessage-test.tsx @@ -23,7 +23,7 @@ import React from 'react'; import { Route } from 'react-router-dom'; import { MessageTypes } from '../../../api/messages'; import MessagesServiceMock from '../../../api/mocks/MessagesServiceMock'; -import NewCodePeriodsServiceMock from '../../../api/mocks/NewCodePeriodsServiceMock'; +import NewCodeDefinitionServiceMock from '../../../api/mocks/NewCodeDefinitionServiceMock'; import { mockComponent } from '../../../helpers/mocks/component'; import { mockLoggedInUser } from '../../../helpers/testMocks'; import { renderAppRoutes } from '../../../helpers/testReactTestingUtils'; @@ -32,7 +32,7 @@ import { NewCodeDefinitionType } from '../../../types/new-code-definition'; import { Component } from '../../../types/types'; import NCDAutoUpdateMessage from '../NCDAutoUpdateMessage'; -let newCodeDefinitionMock: NewCodePeriodsServiceMock; +let newCodeDefinitionMock: NewCodeDefinitionServiceMock; let messagesMock: MessagesServiceMock; describe('Global NCD update notification banner', () => { @@ -54,7 +54,7 @@ describe('Global NCD update notification banner', () => { } beforeAll(() => { - newCodeDefinitionMock = new NewCodePeriodsServiceMock(); + newCodeDefinitionMock = new NewCodeDefinitionServiceMock(); messagesMock = new MessagesServiceMock(); }); @@ -143,7 +143,7 @@ describe('Project NCD update notification banner', () => { } beforeAll(() => { - newCodeDefinitionMock = new NewCodePeriodsServiceMock(); + newCodeDefinitionMock = new NewCodeDefinitionServiceMock(); messagesMock = new MessagesServiceMock(); }); -- 2.39.5