]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10980 display "No results" when facet is empty (#489)
authorStas Vilchik <stas.vilchik@sonarsource.com>
Fri, 6 Jul 2018 10:12:33 +0000 (12:12 +0200)
committerSonarTech <sonartech@sonarsource.com>
Tue, 17 Jul 2018 18:21:24 +0000 (20:21 +0200)
server/sonar-web/src/main/js/apps/issues/sidebar/StandardFacet.tsx
server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/StandardFacet-test.tsx
server/sonar-web/src/main/js/apps/issues/sidebar/__tests__/__snapshots__/StandardFacet-test.tsx.snap

index 21cf417c20e16bba5b89d606be13dac75d971a36..33d6d0e6f6690dd8ae945307e4a8b00ba13ab060 100644 (file)
@@ -191,6 +191,15 @@ export default class StandardFacet extends React.PureComponent<Props, State> {
     }
 
     const categories = sortBy(Object.keys(stats), key => -stats[key]);
+
+    if (!categories.length) {
+      return (
+        <div className="search-navigator-facet-empty little-spacer-top">
+          {translate('no_results')}
+        </div>
+      );
+    }
+
     const getStat = (category: string) => {
       return stats ? stats[category] : undefined;
     };
index 52cd5c5cab8018cf065f04076fb81554d29ce042..6e90bf2c6a8e78a95ca11673052cdf7446aeff1d 100644 (file)
@@ -57,6 +57,14 @@ it('should render sub-facets', () => {
   ).toMatchSnapshot();
 });
 
+it('should render empty sub-facet', () => {
+  expect(
+    shallowRender({ open: true, sansTop25: [], sansTop25Open: true, sansTop25Stats: {} }).find(
+      'FacetBox[property="sansTop25"]'
+    )
+  ).toMatchSnapshot();
+});
+
 it('should select items', () => {
   const onChange = jest.fn();
   const wrapper = shallowRender({
index 99871e7fecc5802973503c98e6211e8fbd560934..56d67a59bfe2d9c416b88225ec9592c6d76d425e 100644 (file)
@@ -14,6 +14,25 @@ exports[`should render closed 1`] = `
 </FacetBox>
 `;
 
+exports[`should render empty sub-facet 1`] = `
+<FacetBox
+  className="is-inner"
+  property="sansTop25"
+>
+  <FacetHeader
+    name="issues.facet.sansTop25"
+    onClick={[Function]}
+    open={true}
+    values={Array []}
+  />
+  <div
+    className="search-navigator-facet-empty little-spacer-top"
+  >
+    no_results
+  </div>
+</FacetBox>
+`;
+
 exports[`should render sub-facets 1`] = `
 <FacetBox
   property="standards"