From 8edcaa6b263945e5f02b95e49e145ad1a1d57883 Mon Sep 17 00:00:00 2001 From: Jeremy Davis Date: Fri, 23 Jun 2023 18:32:42 +0200 Subject: [PATCH] SONAR-19604 Fixes from validation --- .../projectActivity/components/Events.tsx | 2 +- .../components/ProjectActivityAnalysis.tsx | 114 +++++++++--------- .../__tests__/ProjectActivityApp-it.tsx | 10 +- .../DefinitionChangeEventInner.tsx | 35 +++--- .../components/activity-graph/EventInner.tsx | 2 +- .../RichQualityGateEventInner.tsx | 45 ++++--- 6 files changed, 114 insertions(+), 94 deletions(-) diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/Events.tsx b/server/sonar-web/src/main/js/apps/projectActivity/components/Events.tsx index f515d356370..028d0f6cda4 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/Events.tsx +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/Events.tsx @@ -43,7 +43,7 @@ function Events(props: EventsProps) { ); return ( -
+
{sortedEvents.map((event) => ( (node = ref)} >
- + {(formattedTime) => } @@ -123,63 +124,65 @@ function ProjectActivityAnalysis(props: ProjectActivityAnalysisProps) {
{(canAddVersion || canAddEvent || canDeleteAnalyses) && ( -
- +
+ + {canAddVersion && ( + setAddVersionForm(true)}> + {translate('project_activity.add_version')} + + )} + {canAddEvent && ( + setAddEventForm(true)}> + {translate('project_activity.add_custom_event')} + + )} + {(canAddVersion || canAddEvent) && canDeleteAnalyses && } + {canDeleteAnalyses && ( + setRemoveAnalysisForm(true)} + > + {translate('project_activity.delete_analysis')} + + )} + + + {addVersionForm && ( + setAddVersionForm(false)} + /> )} - buttonSize="small" - id="it__analysis-actions" - zLevel={PopupZLevel.Absolute} - > - {canAddVersion && ( - setAddVersionForm(true)}> - {translate('project_activity.add_version')} - - )} - {canAddEvent && ( - setAddEventForm(true)}> - {translate('project_activity.add_custom_event')} - - )} - {(canAddVersion || canAddEvent) && canDeleteAnalyses && } - {canDeleteAnalyses && ( - setRemoveAnalysisForm(true)} - > - {translate('project_activity.delete_analysis')} - + + {addEventForm && ( + setAddEventForm(false)} + /> )} - - - {addVersionForm && ( - setAddVersionForm(false)} - /> - )} - - {addEventForm && ( - setAddEventForm(false)} - /> - )} - {removeAnalysisForm && ( - setRemoveAnalysisForm(false)} - /> - )} -
+ {removeAnalysisForm && ( + setRemoveAnalysisForm(false)} + /> + )} +
+ )} {analysis.events.length > 0 && ( @@ -213,6 +216,7 @@ function ProjectActivityAnalysis(props: ProjectActivityAnalysisProps) { } const ActivityTime = styled.div` + box-sizing: border-box; width: 4.5rem; `; diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityApp-it.tsx b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityApp-it.tsx index e96e601475a..bba186f2cd6 100644 --- a/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityApp-it.tsx +++ b/server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/ProjectActivityApp-it.tsx @@ -168,13 +168,11 @@ describe('CRUD', () => { await ui.appLoaded(); await ui.addVersionEvent('1.1.0.1', initialValue); - // should appear 3x, one for the list, one for the graph and one for the tooltip - expect(screen.getAllByText(initialValue).length).toEqual(3); + expect(screen.getAllByText(initialValue).length).toBeGreaterThan(0); await act(async () => { await ui.updateEvent(1, updatedValue); - // should appear 3x, one for the list, one for the graph and one for the tooltip - expect(screen.getAllByText(updatedValue).length).toEqual(3); + expect(screen.getAllByText(updatedValue).length).toBeGreaterThan(0); }); await ui.deleteEvent(0); @@ -199,12 +197,12 @@ describe('CRUD', () => { await act(async () => { await ui.addCustomEvent('1.1.0.1', initialValue); - expect(screen.getAllByText(initialValue)[0]).toBeInTheDocument(); + expect(screen.getAllByText(initialValue).length).toBeGreaterThan(0); }); await act(async () => { await ui.updateEvent(1, updatedValue); - expect(screen.getAllByText(updatedValue)[0]).toBeInTheDocument(); + expect(screen.getAllByText(updatedValue).length).toBeGreaterThan(0); }); await ui.deleteEvent(0); diff --git a/server/sonar-web/src/main/js/components/activity-graph/DefinitionChangeEventInner.tsx b/server/sonar-web/src/main/js/components/activity-graph/DefinitionChangeEventInner.tsx index dafa20f4d6a..bc5379f0a74 100644 --- a/server/sonar-web/src/main/js/components/activity-graph/DefinitionChangeEventInner.tsx +++ b/server/sonar-web/src/main/js/components/activity-graph/DefinitionChangeEventInner.tsx @@ -17,12 +17,11 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import { BareButton, ChevronDownIcon, StandoutLink } from 'design-system'; +import { BareButton, BranchIcon, ChevronDownIcon, Note, StandoutLink } from 'design-system'; import * as React from 'react'; import { FormattedMessage } from 'react-intl'; import { isMainBranch } from '../../helpers/branch-like'; import { translate } from '../../helpers/l10n'; -import { limitComponentName } from '../../helpers/path'; import { getProjectUrl } from '../../helpers/urls'; import { BranchLike } from '../../types/branch-like'; import { @@ -31,7 +30,6 @@ import { DefinitionChangeType, } from '../../types/project-activity'; import ClickEventBoundary from '../controls/ClickEventBoundary'; -import BranchIcon from '../icons/BranchIcon'; export type DefinitionChangeEvent = AnalysisEvent & Required>; @@ -53,8 +51,6 @@ interface State { expanded: boolean; } -const NAME_MAX_LENGTH = 28; - export class DefinitionChangeEventInner extends React.PureComponent { state: State = { expanded: false }; @@ -64,15 +60,19 @@ export class DefinitionChangeEventInner extends React.PureComponent ( - - {limitComponentName(project.name, NAME_MAX_LENGTH)} + + {project.name} ); renderBranch = (branch = translate('branches.main_branch')) => ( - - + + {branch} ); @@ -139,24 +139,29 @@ export class DefinitionChangeEventInner extends React.PureComponent +
- {translate('event.category', event.category)} + + {translate('event.category', event.category)} + {!readonly && ( -
- + + {expanded ? translate('hide') : translate('more')} -
+ )}
{expanded && (
    {event.definitionChange.projects.map((project) => ( -
  • +
  • {this.renderProjectChange(project)}
  • ))} diff --git a/server/sonar-web/src/main/js/components/activity-graph/EventInner.tsx b/server/sonar-web/src/main/js/components/activity-graph/EventInner.tsx index 2d50393af70..31996b65f5a 100644 --- a/server/sonar-web/src/main/js/components/activity-graph/EventInner.tsx +++ b/server/sonar-web/src/main/js/components/activity-graph/EventInner.tsx @@ -45,7 +45,7 @@ export default function EventInner({ event, readonly }: EventInnerProps) { } return ( -
    +
    diff --git a/server/sonar-web/src/main/js/components/activity-graph/RichQualityGateEventInner.tsx b/server/sonar-web/src/main/js/components/activity-graph/RichQualityGateEventInner.tsx index 500a4bd9faa..48d7d6bfada 100644 --- a/server/sonar-web/src/main/js/components/activity-graph/RichQualityGateEventInner.tsx +++ b/server/sonar-web/src/main/js/components/activity-graph/RichQualityGateEventInner.tsx @@ -17,7 +17,13 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import { BareButton, ChevronDownIcon, QualityGateIndicator, StandoutLink } from 'design-system'; +import { + BareButton, + ChevronDownIcon, + Note, + QualityGateIndicator, + StandoutLink, +} from 'design-system'; import * as React from 'react'; import { FormattedMessage } from 'react-intl'; import { translate, translateWithParameters } from '../../helpers/l10n'; @@ -51,11 +57,14 @@ export class RichQualityGateEventInner extends React.PureComponent const { event, readonly } = this.props; const { expanded } = this.state; return ( -
    +
    -
    - {translate('event.category', event.category)}: -
    +
    + + {translate('event.category', event.category)} + + +
    {event.qualityGate.stillFailing ? ( ) : ( )} + + + {translate(`event.quality_gate.${event.qualityGate.status}`)} +
    - {translate(`event.quality_gate.${event.qualityGate.status}`)}
    {!readonly && event.qualityGate.failing.length > 0 && ( -
    - + + {expanded ? translate('hide') : translate('more')} -
    + )}
    {expanded && ( -
      +
        {event.qualityGate.failing.map((project) => ( -
      • -
        +
      • +
        -
        -
        - -
        +
        + {translate(`event.quality_gate.${event.qualityGate.status}`)} -- 2.39.5