From 036c0eb166debaefaa314eadcff3603298a799ad Mon Sep 17 00:00:00 2001 From: Lukas Planz <sytm@gmx.de> Date: Sun, 29 Mar 2020 16:48:24 +0200 Subject: [PATCH] fix: [Spiget] invalid response for external downloads #4840 (#4841) * fix: spiget invalid response for external downloads #4840 * Changed the background color if resource is external and use proper Spiget API for the test * Fix invalid mocked response for spiget service tests Co-authored-by: Pierre-Yves B <PyvesDev@gmail.com> --- services/spiget/spiget-base.js | 5 ++++- services/spiget/spiget-download-size.service.js | 14 ++++++++++++-- services/spiget/spiget-download-size.tester.js | 7 +++++++ services/spiget/spiget-tested-versions.tester.js | 2 ++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/services/spiget/spiget-base.js b/services/spiget/spiget-base.js index f8d6ed137a..078f633666 100644 --- a/services/spiget/spiget-base.js +++ b/services/spiget/spiget-base.js @@ -6,8 +6,11 @@ const { BaseJsonService } = require('..') const resourceSchema = Joi.object({ downloads: Joi.number().required(), file: Joi.object({ + type: Joi.string().required(), size: Joi.number().required(), - sizeUnit: Joi.string().required(), + sizeUnit: Joi.string() + .allow('') + .required(), }).required(), testedVersions: Joi.array(), rating: Joi.object({ diff --git a/services/spiget/spiget-download-size.service.js b/services/spiget/spiget-download-size.service.js index 410e5fd5dd..3d74cf2825 100644 --- a/services/spiget/spiget-download-size.service.js +++ b/services/spiget/spiget-download-size.service.js @@ -35,7 +35,13 @@ module.exports = class SpigetDownloadSize extends BaseSpigetService { } } - static render({ size, unit }) { + static render({ size, unit, type }) { + if (type === 'external') { + return { + message: `resource hosted externally`, + color: 'lightgrey', + } + } return { message: `${size} ${unit}`, } @@ -43,6 +49,10 @@ module.exports = class SpigetDownloadSize extends BaseSpigetService { async handle({ resourceId }) { const { file } = await this.fetch({ resourceId }) - return this.constructor.render({ size: file.size, unit: file.sizeUnit }) + return this.constructor.render({ + size: file.size, + unit: file.sizeUnit, + type: file.type, + }) } } diff --git a/services/spiget/spiget-download-size.tester.js b/services/spiget/spiget-download-size.tester.js index bdcdd3bdec..a5c943d642 100644 --- a/services/spiget/spiget-download-size.tester.js +++ b/services/spiget/spiget-download-size.tester.js @@ -7,6 +7,13 @@ t.create('EssentialsX (id 9089)') .get('/9089.json') .expectBadge({ label: 'size', message: isFileSize }) +t.create('Advanced Achievements (id 6239)') + .get('/6239.json') + .expectBadge({ + lavel: 'size', + message: 'resource hosted externally', + }) + t.create('Invalid Resource (id 1)') .get('/1.json') .expectBadge({ diff --git a/services/spiget/spiget-tested-versions.tester.js b/services/spiget/spiget-tested-versions.tester.js index cf942beabe..7389e9283c 100644 --- a/services/spiget/spiget-tested-versions.tester.js +++ b/services/spiget/spiget-tested-versions.tester.js @@ -27,6 +27,7 @@ t.create('Nock - single version supported') .reply(200, { downloads: 1, file: { + type: '.jar', size: 1, sizeUnit: '1', }, @@ -50,6 +51,7 @@ t.create('Nock - multiple versions supported') .reply(200, { downloads: 1, file: { + type: '.jar', size: 1, sizeUnit: '1', }, -- GitLab