aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorWouter Admiraal <wouter.admiraal@sonarsource.com>2019-03-19 11:46:53 +0100
committerSonarTech <sonartech@sonarsource.com>2019-03-19 20:21:27 +0100
commiteed6bc73b6569f0dd624ae58ad141f7702878557 (patch)
tree394b6aade8b202f22282f3c2b54dc8fbddafe758 /server
parentf1c3675ebc5dd008903c3fcc9082bba55d750a06 (diff)
downloadsonarqube-eed6bc73b6569f0dd624ae58ad141f7702878557.tar.gz
sonarqube-eed6bc73b6569f0dd624ae58ad141f7702878557.zip
SONAR-11631 Replace codePeriodVersion with buildString (frontend)
Diffstat (limited to 'server')
-rw-r--r--server/sonar-web/src/main/js/app/types.d.ts2
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.tsx14
-rw-r--r--server/sonar-web/src/main/js/apps/projectActivity/components/forms/__tests__/AddEventForm-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/helpers/testMocks.ts37
4 files changed, 45 insertions, 10 deletions
diff --git a/server/sonar-web/src/main/js/app/types.d.ts b/server/sonar-web/src/main/js/app/types.d.ts
index 2d4f5518f90..2d6442dd7b4 100644
--- a/server/sonar-web/src/main/js/app/types.d.ts
+++ b/server/sonar-web/src/main/js/app/types.d.ts
@@ -49,7 +49,7 @@ declare namespace T {
}
export interface Analysis {
- codePeriodVersion?: string;
+ buildString?: string;
date: string;
events: AnalysisEvent[];
key: string;
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.tsx b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.tsx
index 7b5d89e9625..162191bbcfe 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.tsx
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/ProjectActivityAnalysis.tsx
@@ -117,27 +117,25 @@ export default class ProjectActivityAnalysis extends React.PureComponent<Props,
};
render() {
- const { analysis, isFirst, canAdmin } = this.props;
+ const { analysis, isFirst, canAdmin, canCreateVersion } = this.props;
const { date, events } = analysis;
const parsedDate = parseDate(date);
const hasVersion = events.find(event => event.category === 'VERSION') != null;
- const canAddVersion = canAdmin && !hasVersion && this.props.canCreateVersion;
+ const canAddVersion = canAdmin && !hasVersion && canCreateVersion;
const canAddEvent = canAdmin;
const canDeleteAnalyses =
this.props.canDeleteAnalyses && !isFirst && !analysis.manualNewCodePeriodBaseline;
let tooltipContent = <TimeFormatter date={parsedDate} long={true} />;
- // If projectVersion AND codePeriodVersion are set, add the projectVersion
- // to the tooltip content.
- if (analysis.projectVersion && analysis.codePeriodVersion) {
+ if (analysis.buildString) {
tooltipContent = (
<>
{tooltipContent}
<br />
{translateWithParameters(
- 'project_activity.analysis_project_version_X',
- analysis.projectVersion
+ 'project_activity.analysis_build_string_X',
+ analysis.buildString
)}
</>
);
@@ -147,7 +145,7 @@ export default class ProjectActivityAnalysis extends React.PureComponent<Props,
<Tooltip mouseEnterDelay={0.5} overlay={tooltipContent} placement="left">
<li
className={classNames('project-activity-analysis', { selected: this.props.selected })}
- data-date={date.valueOf()}
+ data-date={parsedDate.valueOf()}
onClick={this.handleClick}
tabIndex={0}>
<div className="project-activity-time spacer-right">
diff --git a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/__tests__/AddEventForm-test.tsx b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/__tests__/AddEventForm-test.tsx
index 68791270850..0fe6350b213 100644
--- a/server/sonar-web/src/main/js/apps/projectActivity/components/forms/__tests__/AddEventForm-test.tsx
+++ b/server/sonar-web/src/main/js/apps/projectActivity/components/forms/__tests__/AddEventForm-test.tsx
@@ -31,7 +31,7 @@ it('should render correctly', () => {
key: '1',
date: new Date('2019-01-14T15:44:51.000Z'),
events: [{ key: '2', category: 'VERSION', name: '1.0' }],
- codePeriodVersion: '1.0',
+ projectVersion: '1.0',
manualNewCodePeriodBaseline: false
}}
onClose={jest.fn()}
diff --git a/server/sonar-web/src/main/js/helpers/testMocks.ts b/server/sonar-web/src/main/js/helpers/testMocks.ts
index 04d39de2f9a..937d1f062d0 100644
--- a/server/sonar-web/src/main/js/helpers/testMocks.ts
+++ b/server/sonar-web/src/main/js/helpers/testMocks.ts
@@ -19,6 +19,7 @@
*/
import { InjectedRouter } from 'react-router';
import { Location } from 'history';
+import { ParsedAnalysis } from '../apps/projectActivity/utils';
import { Profile } from '../apps/quality-profiles/types';
export function mockAlmApplication(overrides: Partial<T.AlmApplication> = {}): T.AlmApplication {
@@ -47,6 +48,42 @@ export function mockAlmOrganization(overrides: Partial<T.AlmOrganization> = {}):
};
}
+export function mockParsedAnalysis(overrides: Partial<ParsedAnalysis> = {}): ParsedAnalysis {
+ return {
+ date: new Date('2017-03-01T09:36:01+0100'),
+ events: [],
+ key: 'foo',
+ projectVersion: '1.0',
+ ...overrides
+ };
+}
+
+export function mockAnalysisEvent(overrides: Partial<T.AnalysisEvent> = {}): T.AnalysisEvent {
+ return {
+ category: 'QUALITY_GATE',
+ key: 'E11',
+ description: 'Lorem ipsum dolor sit amet',
+ name: 'Lorem ipsum',
+ qualityGate: {
+ status: 'ERROR',
+ stillFailing: true,
+ failing: [
+ {
+ key: 'foo',
+ name: 'Foo',
+ branch: 'master'
+ },
+ {
+ key: 'bar',
+ name: 'Bar',
+ branch: 'feature/bar'
+ }
+ ]
+ },
+ ...overrides
+ };
+}
+
export function mockAppState(overrides: Partial<T.AppState> = {}): T.AppState {
return {
defaultOrganization: 'foo',