*/
import * as React from 'react';
import withAppStateContext from '../../../app/components/app-state/withAppStateContext';
+import DocLink from '../../../components/common/DocLink';
+import DismissableAlert from '../../../components/ui/DismissableAlert';
import { isBranch, isPullRequest } from '../../../helpers/branch-like';
+import { translate } from '../../../helpers/l10n';
import { AppState } from '../../../types/appstate';
import { BranchLike } from '../../../types/branch-like';
import {
newCodeSelected={query.inNewCodePeriod}
/>
)}
+ <DismissableAlert alertKey="issues-characteristic-facets" variant="info" display="inline">
+ <strong>{translate('issues.characteristic.facet-highlight.title')}</strong>
+ <br />
+ <DocLink to="/what-sonarqube-can-do">{translate('learn_more')}</DocLink>
+ </DismissableAlert>
<CharacteristicFacet
fetching={loadingFacets.characteristics === true}
onChange={this.props.onFilterChange}
import { GlobalSettingKeys } from '../../../../types/settings';
import { Sidebar } from '../Sidebar';
+const getFacetNames = () =>
+ screen
+ .getAllByRole('button')
+ .map((button) => button.textContent)
+ .filter((name) => !!name);
+
it('should render correct facets for Application', () => {
renderSidebar({ component: mockComponent({ qualifier: ComponentQualifier.Application }) });
- expect(screen.getAllByRole('button').map((button) => button.textContent)).toStrictEqual([
+ expect(getFacetNames()).toStrictEqual([
'issues.facet.characteristics.PRODUCTION',
'issues.facet.characteristics.DEVELOPMENT',
'issues.facet.severities',
it('should render correct facets for Portfolio', () => {
renderSidebar({ component: mockComponent({ qualifier: ComponentQualifier.Portfolio }) });
- expect(screen.getAllByRole('button').map((button) => button.textContent)).toStrictEqual([
+ expect(getFacetNames()).toStrictEqual([
'issues.facet.characteristics.PRODUCTION',
'issues.facet.characteristics.DEVELOPMENT',
'issues.facet.severities',
it('should render correct facets for SubPortfolio', () => {
renderSidebar({ component: mockComponent({ qualifier: ComponentQualifier.SubPortfolio }) });
- expect(screen.getAllByRole('button').map((button) => button.textContent)).toStrictEqual([
+ expect(getFacetNames()).toStrictEqual([
'issues.facet.characteristics.PRODUCTION',
'issues.facet.characteristics.DEVELOPMENT',
'issues.facet.severities',
query: mockQuery({ assigned: true }),
});
- expect(screen.getAllByRole('button').map((button) => button.textContent)).toStrictEqual([
+ expect(getFacetNames()).toStrictEqual([
'issues.facet.characteristics.PRODUCTION',
'issues.facet.characteristics.DEVELOPMENT',
'issues.facet.severities',
}),
});
- expect(screen.getAllByRole('button').map((button) => button.textContent)).toStrictEqual([
+ expect(getFacetNames()).toStrictEqual([
'issues.facet.characteristics.PRODUCTION',
'issues.facet.characteristics.DEVELOPMENT',
'issues.facet.severities',
false_positive=False positive
go_back_to_homepage=Go back to the homepage
last_analysis_before=Last analysis before
+learn_more=Learn more
less_than_1_hour_ago=< 1 hour ago
local=Local
logging_out=You're logging out, please wait...
issues.not_all_issue_show_why=You do not have access to all projects in this portfolio
issues.show_more_filters=Show more filters
issues.show_less_filters=Show less filters
+issues.characteristic.facet-highlight.title=New Clean Code characteristics
#------------------------------------------------------------------------------
#