From cabaac4f82ea4f2bfa38abf7eb87f08eed1d7b74 Mon Sep 17 00:00:00 2001 From: Sergey Kupletsky Date: Wed, 19 Jun 2024 20:26:40 +0100 Subject: [PATCH 1/2] remove logoPosition param --- badge-maker/lib/make-badge.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/badge-maker/lib/make-badge.js b/badge-maker/lib/make-badge.js index bb96c62867c9c..0556427f8f21f 100644 --- a/badge-maker/lib/make-badge.js +++ b/badge-maker/lib/make-badge.js @@ -17,7 +17,6 @@ module.exports = function makeBadge({ color, labelColor, logo, - logoPosition, logoSize, logoWidth, links = ['', ''], @@ -55,7 +54,6 @@ module.exports = function makeBadge({ message, links, logo, - logoPosition, logoWidth, logoSize, logoPadding: logo && label.length ? 3 : 0, From aff0b0d01741cbe8f8bd1a7c4ed44b7ea2b9fda3 Mon Sep 17 00:00:00 2001 From: chris48s Date: Thu, 20 Jun 2024 20:28:48 +0100 Subject: [PATCH 2/2] finish the job of removing logoPosition --- core/base-service/base.js | 1 - core/base-service/base.spec.js | 1 - core/base-service/coalesce-badge.js | 18 +++--------------- core/base-service/coalesce-badge.spec.js | 17 +---------------- core/base-service/legacy-request-handler.js | 1 - services/endpoint-common.js | 7 ++++++- services/endpoint/endpoint.service.js | 9 --------- services/endpoint/endpoint.tester.js | 18 ++++++++++++++++++ 8 files changed, 28 insertions(+), 44 deletions(-) diff --git a/core/base-service/base.js b/core/base-service/base.js index 4b7e460955143..8123150a503a0 100644 --- a/core/base-service/base.js +++ b/core/base-service/base.js @@ -66,7 +66,6 @@ const serviceDataSchema = Joi.object({ logoSvg: Joi.string(), logoColor: optionalStringWhenNamedLogoPresent, logoWidth: optionalNumberWhenAnyLogoPresent, - logoPosition: optionalNumberWhenAnyLogoPresent, cacheSeconds: Joi.number().integer().min(0), style: Joi.string(), }) diff --git a/core/base-service/base.spec.js b/core/base-service/base.spec.js index e5878c7729438..a0f5b9d02b02d 100644 --- a/core/base-service/base.spec.js +++ b/core/base-service/base.spec.js @@ -378,7 +378,6 @@ describe('BaseService', function () { logo: undefined, logoWidth: undefined, logoSize: undefined, - logoPosition: undefined, links: [], labelColor: undefined, cacheLengthSeconds: undefined, diff --git a/core/base-service/coalesce-badge.js b/core/base-service/coalesce-badge.js index 325745c498ed7..588d9bd0dcd41 100644 --- a/core/base-service/coalesce-badge.js +++ b/core/base-service/coalesce-badge.js @@ -23,9 +23,8 @@ import toArray from './to-array.js' // base64-encoded logos). Otherwise the default color is used. If the color // is specified for a multicolor Shield logo, the named logo will be used and // colored. The appearance of the logo can be customized using `logoWidth`, -// and in the case of the popout badge, `logoPosition`. When `?logo=` is -// specified, any logo-related parameters specified dynamically by the -// service, or by default in the service, are ignored. +// When `?logo=` is specified, any logo-related parameters specified +// dynamically by the service, or by default in the service, are ignored. // 2. The second precedence is the dynamic logo returned by a service. This is // used only by the Endpoint badge. The `logoColor` can be overridden by the // query string. @@ -56,7 +55,6 @@ export default function coalesceBadge( } = overrides let { logoWidth: overrideLogoWidth, - logoPosition: overrideLogoPosition, logoSize: overrideLogoSize, color: overrideColor, labelColor: overrideLabelColor, @@ -78,7 +76,6 @@ export default function coalesceBadge( overrideLabelColor = `${overrideLabelColor}` } overrideLogoWidth = +overrideLogoWidth || undefined - overrideLogoPosition = +overrideLogoPosition || undefined const { isError, @@ -91,7 +88,6 @@ export default function coalesceBadge( logoColor: serviceLogoColor, logoSize: serviceLogoSize, logoWidth: serviceLogoWidth, - logoPosition: serviceLogoPosition, link: serviceLink, cacheSeconds: serviceCacheSeconds, style: serviceStyle, @@ -122,12 +118,7 @@ export default function coalesceBadge( style = 'flat' } - let namedLogo, - namedLogoColor, - logoSize, - logoWidth, - logoPosition, - logoSvgBase64 + let namedLogo, namedLogoColor, logoSize, logoWidth, logoSvgBase64 if (overrideLogo) { // `?logo=` could be a named logo or encoded svg. const overrideLogoSvgBase64 = decodeDataUrlFromQueryParam(overrideLogo) @@ -143,7 +134,6 @@ export default function coalesceBadge( // original width or position. logoSize = overrideLogoSize logoWidth = overrideLogoWidth - logoPosition = overrideLogoPosition } else { if (serviceLogoSvg) { logoSvgBase64 = svg2base64(serviceLogoSvg) @@ -156,7 +146,6 @@ export default function coalesceBadge( } logoSize = coalesce(overrideLogoSize, serviceLogoSize) logoWidth = coalesce(overrideLogoWidth, serviceLogoWidth) - logoPosition = coalesce(overrideLogoPosition, serviceLogoPosition) } if (namedLogo) { const iconSize = getIconSize(String(namedLogo).toLowerCase()) @@ -195,7 +184,6 @@ export default function coalesceBadge( namedLogo, logo: logoSvgBase64, logoWidth, - logoPosition, logoSize, links: toArray(overrideLink || serviceLink), cacheLengthSeconds: coalesce(serviceCacheSeconds, defaultCacheSeconds), diff --git a/core/base-service/coalesce-badge.spec.js b/core/base-service/coalesce-badge.spec.js index 27969c6e0a1a2..247c10975fa9e 100644 --- a/core/base-service/coalesce-badge.spec.js +++ b/core/base-service/coalesce-badge.spec.js @@ -195,14 +195,13 @@ describe('coalesceBadge', function () { ).to.equal(getSimpleIcon({ name: 'npm', color: 'blue' })).and.not.be.empty }) - it("when the logo is overridden, it ignores the service's logo color, position, and width", function () { + it("when the logo is overridden, it ignores the service's logo color and width", function () { expect( coalesceBadge( { logo: 'npm' }, { namedLogo: 'appveyor', logoColor: 'red', - logoPosition: -3, logoWidth: 100, }, {}, @@ -288,20 +287,6 @@ describe('coalesceBadge', function () { }) }) - describe('Logo position', function () { - it('overrides the logoPosition', function () { - expect(coalesceBadge({ logoPosition: -10 }, {}, {})).to.include({ - logoPosition: -10, - }) - }) - - it('applies the logo position', function () { - expect( - coalesceBadge({}, { namedLogo: 'npm', logoPosition: -10 }, {}), - ).to.include({ logoPosition: -10 }) - }) - }) - describe('Links', function () { it('overrides the links', function () { expect( diff --git a/core/base-service/legacy-request-handler.js b/core/base-service/legacy-request-handler.js index 7e1d537a83432..83a307aecbf68 100644 --- a/core/base-service/legacy-request-handler.js +++ b/core/base-service/legacy-request-handler.js @@ -11,7 +11,6 @@ const globalQueryParams = new Set([ 'link', 'logo', 'logoColor', - 'logoPosition', 'logoSize', 'logoWidth', 'link', diff --git a/services/endpoint-common.js b/services/endpoint-common.js index fabf483d057fb..af89d76505f1d 100644 --- a/services/endpoint-common.js +++ b/services/endpoint-common.js @@ -36,9 +36,14 @@ const endpointSchema = Joi.object({ logoSvg: Joi.string(), logoColor: optionalStringWhenNamedLogoPresent, logoWidth: optionalNumberWhenAnyLogoPresent, - logoPosition: optionalNumberWhenAnyLogoPresent, style: Joi.string(), cacheSeconds: Joi.number().integer().min(0), + /* + Retained for legacy compatibility + Although this does nothing, + passing it should not throw an error + */ + logoPosition: optionalNumberWhenAnyLogoPresent, }) // `namedLogo` or `logoSvg`; not both. .oxor('namedLogo', 'logoSvg') diff --git a/services/endpoint/endpoint.service.js b/services/endpoint/endpoint.service.js index 80a0664f89c19..1a4b68e7ac793 100644 --- a/services/endpoint/endpoint.service.js +++ b/services/endpoint/endpoint.service.js @@ -102,13 +102,6 @@ The endpoint badge takes a single required query param: url, which the query string. - - logoPosition - - Default: none. Same meaning as the query string. Can be overridden by - the query string. - - style @@ -157,7 +150,6 @@ export default class Endpoint extends BaseJsonService { logoSvg, logoColor, logoWidth, - logoPosition, style, cacheSeconds, }) { @@ -171,7 +163,6 @@ export default class Endpoint extends BaseJsonService { logoSvg, logoColor, logoWidth, - logoPosition, style, // don't allow the user to set cacheSeconds any shorter than this._cacheLength cacheSeconds: Math.max( diff --git a/services/endpoint/endpoint.tester.js b/services/endpoint/endpoint.tester.js index 2fb43865b1a7a..858ca792d97ab 100644 --- a/services/endpoint/endpoint.tester.js +++ b/services/endpoint/endpoint.tester.js @@ -119,6 +119,24 @@ t.create('logoWidth') logoWidth: 30, }) +// The logoPosition param was removed, but passing it should not +// throw a validation error. It should just do nothing. +t.create('logoPosition') + .get('.json?url=https://example.com/badge') + .intercept(nock => + nock('https://example.com/').get('/badge').reply(200, { + schemaVersion: 1, + label: 'hey', + message: 'yo', + logoSvg, + logoPosition: 30, + }), + ) + .expectBadge({ + label: 'hey', + message: 'yo', + }) + t.create('Invalid schema') .get('.json?url=https://example.com/badge') .intercept(nock =>