From 4aa00070efee773586b53d34637b5de03519df21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20L=C3=BChne?= Date: Thu, 29 Nov 2018 01:40:22 +0100 Subject: [PATCH] Handle unknown Git versions appropriately MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the event that some Git version was recorded that isn’t known to the Git release database, this patch introduces an “unknown” dataset that is invisible otherwise. --- .../js/_partials/chart-recommended-git-versions.js | 13 +++++++++++++ docs/spec/chart-recommended-git-versions.js | 3 +++ 2 files changed, 16 insertions(+) diff --git a/docs/assets/js/_partials/chart-recommended-git-versions.js b/docs/assets/js/_partials/chart-recommended-git-versions.js index 2ffeff8d..24e06f0f 100644 --- a/docs/assets/js/_partials/chart-recommended-git-versions.js +++ b/docs/assets/js/_partials/chart-recommended-git-versions.js @@ -9,7 +9,9 @@ class RecommendedGitVersionsChart extends AreaChart vulnerable: 'red', outdated: 'yellow', recommended: 'green', + unknown: 'grey', }, + datasets: ['recommended', 'outdated', 'vulnerable'], views: [ { @@ -91,6 +93,7 @@ class RecommendedGitVersionsChart extends AreaChart recommended: 0, outdated: 0, vulnerable: 0, + unknown: 0, }; while (version.split('.').length < 3) @@ -104,6 +107,16 @@ class RecommendedGitVersionsChart extends AreaChart continue; } + if (!(version in gitReleases)) + { + // If an unknown version was found, show the “unknown” dataset + if (this.config.datasets.indexOf('unknown') === -1) + this.config.datasets.push('unknown'); + + result[date].unknown += users; + continue; + } + if ('vulnerableSince' in gitReleases[version] && gitReleases[version].vulnerableSince < date) { diff --git a/docs/spec/chart-recommended-git-versions.js b/docs/spec/chart-recommended-git-versions.js index 1f702a82..eca0ffe8 100644 --- a/docs/spec/chart-recommended-git-versions.js +++ b/docs/spec/chart-recommended-git-versions.js @@ -31,16 +31,19 @@ describe('Recommended Git versions chart', function() expect(chartData[287].vulnerable).toEqual(200); expect(chartData[287].outdated).toEqual(188); expect(chartData[287].recommended).toEqual(60); + expect(chartData[287].unknown).toEqual(0); expect(chartData[84].date).toEqual(new Date('2018-10-08')); expect(chartData[84].vulnerable).toEqual(657); expect(chartData[84].outdated).toEqual(0); expect(chartData[84].recommended).toEqual(51); + expect(chartData[84].unknown).toEqual(0); expect(chartData[21].date).toEqual(new Date('2018-12-10')); expect(chartData[21].vulnerable).toEqual(713); expect(chartData[21].outdated).toEqual(146); expect(chartData[21].recommended).toEqual(178); + expect(chartData[21].unknown).toEqual(0); done(); });