Browse Source

SONAR-21798 Portfolio reflects Software Qualities

tags/10.5.0.89998
Ismail Cherri 1 month ago
parent
commit
15364b9623

+ 8
- 8
server/sonar-web/src/main/js/apps/code/__tests__/Code-it.ts View File

@@ -380,10 +380,10 @@ it('should correctly show new VS overall measures for Portfolios', async () => {
let child1Row = ui.measureRow(/^Child 1/);
[
['Releasability', 'OK'],
['security', 'C'],
['Reliability', 'C'],
['vulnerabilities', 'C'],
['security_hotspots', 'C'],
['Maintainability', 'C'],
['security_review', 'C'],
['ncloc', '3'],
['last_analysis_date', '2022-02-01'],
].forEach(([domain, value]) => {
@@ -394,10 +394,10 @@ it('should correctly show new VS overall measures for Portfolios', async () => {
let child2Row = ui.measureRow(/^Child 2/);
[
['Releasability', 'ERROR'],
['security', '—'],
['Reliability', '—'],
['vulnerabilities', '—'],
['security_hotspots', '—'],
['Maintainability', '—'],
['security_review', '—'],
['ncloc', '—'],
['last_analysis_date', '—'],
].forEach(([domain, value]) => {
@@ -411,10 +411,10 @@ it('should correctly show new VS overall measures for Portfolios', async () => {
child1Row = ui.measureRow(/^Child 1/);
[
['Releasability', 'OK'],
['security', 'B'],
['Reliability', 'B'],
['vulnerabilities', 'B'],
['security_hotspots', 'B'],
['Maintainability', 'B'],
['security_review', 'B'],
['ncloc', '2'],
].forEach(([domain, value]) => {
expect(ui.measureValueCell(child1Row, domain, value)).toBeInTheDocument();
@@ -424,10 +424,10 @@ it('should correctly show new VS overall measures for Portfolios', async () => {
child2Row = ui.measureRow(/^Child 2/);
[
['Releasability', 'ERROR'],
['security', '—'],
['Reliability', '—'],
['vulnerabilities', '—'],
['security_hotspots', '—'],
['Maintainability', '—'],
['security_review', '—'],
['ncloc', '—'],
].forEach(([domain, value]) => {
expect(ui.measureValueCell(child2Row, domain, value)).toBeInTheDocument();

+ 12
- 12
server/sonar-web/src/main/js/apps/code/__tests__/__snapshots__/utils-test.tsx.snap View File

@@ -19,16 +19,16 @@ exports[`getCodeMetrics should return the right metrics for apps 1`] = `
exports[`getCodeMetrics should return the right metrics for portfolios 1`] = `
[
"releasability_rating",
"new_reliability_rating",
"new_security_rating",
"new_security_review_rating",
"new_reliability_rating",
"new_maintainability_rating",
"new_security_review_rating",
"new_lines",
"releasability_rating",
"reliability_rating",
"security_rating",
"security_review_rating",
"reliability_rating",
"sqale_rating",
"security_review_rating",
"ncloc",
]
`;
@@ -36,16 +36,16 @@ exports[`getCodeMetrics should return the right metrics for portfolios 1`] = `
exports[`getCodeMetrics should return the right metrics for portfolios 2`] = `
[
"releasability_rating",
"new_reliability_rating",
"new_security_rating",
"new_security_review_rating",
"new_reliability_rating",
"new_maintainability_rating",
"new_security_review_rating",
"new_lines",
"releasability_rating",
"reliability_rating",
"security_rating",
"security_review_rating",
"reliability_rating",
"sqale_rating",
"security_review_rating",
"ncloc",
"alert_status",
]
@@ -54,10 +54,10 @@ exports[`getCodeMetrics should return the right metrics for portfolios 2`] = `
exports[`getCodeMetrics should return the right metrics for portfolios 3`] = `
[
"releasability_rating",
"new_reliability_rating",
"new_security_rating",
"new_security_review_rating",
"new_reliability_rating",
"new_maintainability_rating",
"new_security_review_rating",
"new_lines",
"alert_status",
]
@@ -66,10 +66,10 @@ exports[`getCodeMetrics should return the right metrics for portfolios 3`] = `
exports[`getCodeMetrics should return the right metrics for portfolios 4`] = `
[
"releasability_rating",
"reliability_rating",
"security_rating",
"security_review_rating",
"reliability_rating",
"sqale_rating",
"security_review_rating",
"ncloc",
"alert_status",
]

+ 1
- 1
server/sonar-web/src/main/js/apps/code/components/CodeAppRenderer.tsx View File

@@ -72,7 +72,7 @@ interface Props {
handleSelectNewCode: (newCodeSelected: boolean) => void;
}

export default function CodeAppRenderer(props: Props) {
export default function CodeAppRenderer(props: Readonly<Props>) {
const {
branchLike,
component,

+ 2
- 2
server/sonar-web/src/main/js/apps/code/components/ComponentsHeader.tsx View File

@@ -52,10 +52,10 @@ export default function ComponentsHeader(props: ComponentsHeaderProps) {
if (isPortfolio) {
columns = [
translate('metric_domain.Releasability'),
translate('portfolio.metric_domain.security'),
translate('metric_domain.Reliability'),
translate('portfolio.metric_domain.vulnerabilities'),
translate('portfolio.metric_domain.security_hotspots'),
translate('metric_domain.Maintainability'),
translate('portfolio.metric_domain.security_review'),
translate('metric.ncloc.name'),
];


+ 4
- 4
server/sonar-web/src/main/js/apps/code/utils.ts View File

@@ -46,19 +46,19 @@ const APPLICATION_METRICS = [MetricKey.alert_status, ...METRICS];

const PORTFOLIO_METRICS = [
MetricKey.releasability_rating,
MetricKey.reliability_rating,
MetricKey.security_rating,
MetricKey.security_review_rating,
MetricKey.reliability_rating,
MetricKey.sqale_rating,
MetricKey.security_review_rating,
MetricKey.ncloc,
];

const NEW_PORTFOLIO_METRICS = [
MetricKey.releasability_rating,
MetricKey.new_reliability_rating,
MetricKey.new_security_rating,
MetricKey.new_security_review_rating,
MetricKey.new_reliability_rating,
MetricKey.new_maintainability_rating,
MetricKey.new_security_review_rating,
MetricKey.new_lines,
];


+ 5
- 0
server/sonar-web/src/main/js/components/shared/AnalysisMissingInfoMessage.tsx View File

@@ -21,6 +21,7 @@ import { FlagMessage } from 'design-system';
import * as React from 'react';
import { FormattedMessage, useIntl } from 'react-intl';
import DocumentationLink from '../common/DocumentationLink';
import { ComponentQualifier } from '../../types/component';

interface AnalysisMissingInfoMessageProps {
qualifier: string;
@@ -33,6 +34,10 @@ export default function AnalysisMissingInfoMessage({
}: Readonly<AnalysisMissingInfoMessageProps>) {
const intl = useIntl();

if (qualifier === ComponentQualifier.Portfolio) {
return null;
}

return (
<FlagMessage variant="info" className={className}>
<FormattedMessage

+ 2
- 2
sonar-core/src/main/resources/org/sonar/l10n/core.properties View File

@@ -4986,8 +4986,8 @@ portfolio.breakdown=Portfolio breakdown
portfolio.number_of_projects=Number of project branches
portfolio.number_of_lines=Number of lines of code

portfolio.metric_domain.vulnerabilities=Security Vulnerabilities
portfolio.metric_domain.security_hotspots=Security Review
portfolio.metric_domain.security=Security
portfolio.metric_domain.security_review=Security Review

#------------------------------------------------------------------------------
#

Loading…
Cancel
Save