]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8550 Update function to group analyses by version
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>
Mon, 31 Jul 2017 08:30:55 +0000 (10:30 +0200)
committerGrégoire Aubert <gregoire.aubert@sonarsource.com>
Mon, 31 Jul 2017 11:32:37 +0000 (13:32 +0200)
server/sonar-web/src/main/js/apps/projectActivity/__tests__/__snapshots__/utils-test.js.snap
server/sonar-web/src/main/js/apps/projectActivity/__tests__/utils-test.js
server/sonar-web/src/main/js/apps/projectActivity/components/__tests__/__snapshots__/ProjectActivityAnalysesList-test.js.snap
server/sonar-web/src/main/js/apps/projectActivity/utils.js

index 52f54d40c2524ca1bc37879f265021a174d3a924..192b5d66cc83afb3bdae213438e4a3eeba2ab67d 100644 (file)
@@ -57,46 +57,47 @@ exports[`getAnalysesByVersionByDay should also filter analysis based on the quer
 Array [
   Object {
     "byDay": Object {
-      "2017-4-16": Array [
+      "2017-4-18": Array [
         Object {
-          "date": 2017-05-16T05:09:59.000Z,
+          "date": 2017-05-18T12:13:07.000Z,
           "events": Array [
-            Object {
-              "category": "VERSION",
-              "key": "AVyM9oI1HjR_PLDzRciU",
-              "name": "1.0",
-            },
             Object {
               "category": "QUALITY_PROFILE",
-              "key": "AVwQF7zXl-nNFgFWOJ3W",
+              "key": "AVxZtC-N7841nF4RNEMJ",
               "name": "Changes in \\"Default - SonarSource conventions\\" (Java)",
             },
           ],
-          "key": "AVwQF7kwl-nNFgFWOJ3V",
+          "key": "AVxZtCpH7841nF4RNEMI",
         },
       ],
-      "2017-4-18": Array [
+    },
+    "key": "AVyM9oI1HjR_PLDzRciU",
+    "version": "1.1",
+  },
+  Object {
+    "byDay": Object {
+      "2017-4-16": Array [
         Object {
-          "date": 2017-05-18T12:13:07.000Z,
+          "date": 2017-05-16T05:09:59.000Z,
           "events": Array [
+            Object {
+              "category": "VERSION",
+              "key": "AVyM9oI1HjR_PLDzRciU",
+              "name": "1.0",
+            },
             Object {
               "category": "QUALITY_PROFILE",
-              "key": "AVxZtC-N7841nF4RNEMJ",
+              "key": "AVwQF7zXl-nNFgFWOJ3W",
               "name": "Changes in \\"Default - SonarSource conventions\\" (Java)",
             },
           ],
-          "key": "AVxZtCpH7841nF4RNEMI",
+          "key": "AVwQF7kwl-nNFgFWOJ3V",
         },
       ],
     },
     "key": "AVyM9oI1HjR_PLDzRciU",
     "version": "1.0",
   },
-  Object {
-    "byDay": Object {},
-    "key": undefined,
-    "version": undefined,
-  },
 ]
 `;
 
@@ -107,13 +108,7 @@ Array [
       "2017-5-9": Array [
         Object {
           "date": 2017-06-09T09:12:27.000Z,
-          "events": Array [
-            Object {
-              "category": "VERSION",
-              "key": "AVyM9oI1HjR_PLDzRciU",
-              "name": "1.1-SNAPSHOT",
-            },
-          ],
+          "events": Array [],
           "key": "AVyM9n3cHjR_PLDzRciT",
         },
       ],
@@ -139,18 +134,24 @@ Array [
       "2017-5-9": Array [
         Object {
           "date": 2017-06-09T09:12:27.000Z,
-          "events": Array [],
+          "events": Array [
+            Object {
+              "category": "VERSION",
+              "key": "AVyM9oI1HjR_PLDzRciU",
+              "name": "1.1",
+            },
+          ],
           "key": "AVyMjlK1HjR_PLDzRbB9",
         },
       ],
     },
     "key": "AVyM9oI1HjR_PLDzRciU",
-    "version": "1.0",
+    "version": "1.1",
   },
   Object {
     "byDay": Object {},
-    "key": undefined,
-    "version": undefined,
+    "key": "AVyM9oI1HjR_PLDzRciU",
+    "version": "1.0",
   },
 ]
 `;
@@ -162,11 +163,6 @@ Array [
       "2017-5-9": Array [
         Object {
           "date": 2017-06-09T11:06:10.000Z,
-          "events": Array [],
-          "key": "AVyMjlK1HjR_PLDzRbB9",
-        },
-        Object {
-          "date": 2017-06-09T09:12:27.000Z,
           "events": Array [
             Object {
               "category": "VERSION",
@@ -174,6 +170,11 @@ Array [
               "name": "1.1-SNAPSHOT",
             },
           ],
+          "key": "AVyMjlK1HjR_PLDzRbB9",
+        },
+        Object {
+          "date": 2017-06-09T09:12:27.000Z,
+          "events": Array [],
           "key": "AVyM9n3cHjR_PLDzRciT",
         },
       ],
@@ -183,24 +184,6 @@ Array [
   },
   Object {
     "byDay": Object {
-      "2017-4-16": Array [
-        Object {
-          "date": 2017-05-16T05:09:59.000Z,
-          "events": Array [
-            Object {
-              "category": "VERSION",
-              "key": "AVyM9oI1HjR_PLDzRciU",
-              "name": "1.0",
-            },
-            Object {
-              "category": "QUALITY_PROFILE",
-              "key": "AVwQF7zXl-nNFgFWOJ3W",
-              "name": "Changes in \\"Default - SonarSource conventions\\" (Java)",
-            },
-          ],
-          "key": "AVwQF7kwl-nNFgFWOJ3V",
-        },
-      ],
       "2017-4-18": Array [
         Object {
           "date": 2017-05-18T12:13:07.000Z,
@@ -222,16 +205,40 @@ Array [
       "2017-5-9": Array [
         Object {
           "date": 2017-06-09T09:12:27.000Z,
-          "events": Array [],
+          "events": Array [
+            Object {
+              "category": "VERSION",
+              "key": "AVyM9oI1HjR_PLDzRciU",
+              "name": "1.1",
+            },
+          ],
           "key": "AVyMjlK1HjR_PLDzRbB9",
         },
       ],
     },
     "key": "AVyM9oI1HjR_PLDzRciU",
-    "version": "1.0",
+    "version": "1.1",
   },
   Object {
     "byDay": Object {
+      "2017-4-16": Array [
+        Object {
+          "date": 2017-05-16T05:09:59.000Z,
+          "events": Array [
+            Object {
+              "category": "VERSION",
+              "key": "AVyM9oI1HjR_PLDzRciU",
+              "name": "1.0",
+            },
+            Object {
+              "category": "QUALITY_PROFILE",
+              "key": "AVwQF7zXl-nNFgFWOJ3W",
+              "name": "Changes in \\"Default - SonarSource conventions\\" (Java)",
+            },
+          ],
+          "key": "AVwQF7kwl-nNFgFWOJ3V",
+        },
+      ],
       "2017-4-9": Array [
         Object {
           "date": 2017-05-09T10:03:59.000Z,
@@ -240,8 +247,8 @@ Array [
         },
       ],
     },
-    "key": undefined,
-    "version": undefined,
+    "key": "AVyM9oI1HjR_PLDzRciU",
+    "version": "1.0",
   },
 ]
 `;
index 087184f52b240bb572e1b0a11c18fe005fffb42b..7590775840a816d4ebee453ae67b811a213fc91d 100644 (file)
 import * as utils from '../utils';
 
 const ANALYSES = [
-  { key: 'AVyMjlK1HjR_PLDzRbB9', date: new Date('2017-06-09T13:06:10+0200'), events: [] },
   {
-    key: 'AVyM9n3cHjR_PLDzRciT',
-    date: new Date('2017-06-09T11:12:27+0200'),
+    key: 'AVyMjlK1HjR_PLDzRbB9',
+    date: new Date('2017-06-09T13:06:10+0200'),
     events: [{ key: 'AVyM9oI1HjR_PLDzRciU', category: 'VERSION', name: '1.1-SNAPSHOT' }]
   },
-  { key: 'AVyMjlK1HjR_PLDzRbB9', date: new Date('2017-06-09T11:12:27+0200'), events: [] },
+  { key: 'AVyM9n3cHjR_PLDzRciT', date: new Date('2017-06-09T11:12:27+0200'), events: [] },
+  {
+    key: 'AVyMjlK1HjR_PLDzRbB9',
+    date: new Date('2017-06-09T11:12:27+0200'),
+    events: [{ key: 'AVyM9oI1HjR_PLDzRciU', category: 'VERSION', name: '1.1' }]
+  },
   {
     key: 'AVxZtCpH7841nF4RNEMI',
     date: new Date('2017-05-18T14:13:07+0200'),
index 53dc51ec3514c0fcfd1cdec81d993fe8a6c834c3..aab488da1570ebd62ad6c4cbb4e2ae6da89daabf 100644 (file)
@@ -185,38 +185,6 @@ exports[`should render correctly 1`] = `
             selected={false}
             updateSelectedDate={[Function]}
           />
-        </ul>
-      </li>
-    </ul>
-  </li>
-  <li>
-    <div
-      className="project-activity-version-badge"
-    >
-      <span
-        className="badge"
-      >
-        6.4
-      </span>
-    </div>
-    <ul
-      className="project-activity-days-list"
-    >
-      <li
-        className="project-activity-day"
-        data-day="Formated.YYYY-MM-DD:2016-9-27"
-      >
-        <div
-          className="project-activity-date"
-        >
-          <FormattedDate
-            date="2016-9-27"
-            format="LL"
-          />
-        </div>
-        <ul
-          className="project-activity-analyses-list"
-        >
           <ProjectActivityAnalysis
             addCustomEvent={[Function]}
             addVersion={[Function]}
@@ -237,6 +205,21 @@ exports[`should render correctly 1`] = `
           />
         </ul>
       </li>
+    </ul>
+  </li>
+  <li>
+    <div
+      className="project-activity-version-badge"
+    >
+      <span
+        className="badge"
+      >
+        6.4
+      </span>
+    </div>
+    <ul
+      className="project-activity-days-list"
+    >
       <li
         className="project-activity-day"
         data-day="Formated.YYYY-MM-DD:2016-9-26"
@@ -283,12 +266,6 @@ exports[`should render correctly 1`] = `
           />
         </ul>
       </li>
-    </ul>
-  </li>
-  <li>
-    <ul
-      className="project-activity-days-list"
-    >
       <li
         className="project-activity-day"
         data-day="Formated.YYYY-MM-DD:2016-9-24"
index 894fea65128446bfd31a2f424364522e4773367c..c38cf0bdbee141492a3053cc1a504aa04e3119b0 100644 (file)
@@ -141,10 +141,18 @@ export const getAnalysesByVersionByDay = (
   byDay: { [string]: Array<Analysis> }
 }> =>
   analyses.reduce((acc, analysis) => {
-    if (acc.length === 0) {
-      acc.push({ version: undefined, key: undefined, byDay: {} });
+    let currentVersion = acc[acc.length - 1];
+    const versionEvent = analysis.events.find(event => event.category === 'VERSION');
+    if (versionEvent) {
+      const newVersion = { version: versionEvent.name, key: versionEvent.key, byDay: {} };
+      if (!currentVersion || Object.keys(currentVersion.byDay).length > 0) {
+        acc.push(newVersion);
+      } else {
+        acc[acc.length - 1] = newVersion;
+      }
+      currentVersion = newVersion;
     }
-    const currentVersion = acc[acc.length - 1];
+
     const day = moment(analysis.date).startOf('day').valueOf().toString();
 
     let matchFilters = true;
@@ -162,15 +170,6 @@ export const getAnalysesByVersionByDay = (
       }
       currentVersion.byDay[day].push(analysis);
     }
-
-    const versionEvent = analysis.events.find(event => event.category === 'VERSION');
-    if (versionEvent && versionEvent.category === 'VERSION') {
-      currentVersion.version = versionEvent.name;
-      currentVersion.key = versionEvent.key;
-      if (Object.keys(currentVersion.byDay).length > 0) {
-        acc.push({ version: undefined, key: undefined, byDay: {} });
-      }
-    }
     return acc;
   }, []);
 
@@ -180,7 +179,7 @@ export const getDisplayedHistoryMetrics = (
 ): Array<string> => (isCustomGraph(graph) ? customMetrics : GRAPHS_METRICS_DISPLAYED[graph]);
 
 export const getHistoryMetrics = (graph: string, customMetrics: Array<string>): Array<string> =>
-  (isCustomGraph(graph) ? customMetrics : GRAPHS_METRICS[graph]);
+  isCustomGraph(graph) ? customMetrics : GRAPHS_METRICS[graph];
 
 const parseGraph = (value?: string): string => {
   const graph = parseAsString(value);