diff --git a/doc/service-tests.md b/doc/service-tests.md index f8bd8ebe9476b..07f64a5cdb163 100644 --- a/doc/service-tests.md +++ b/doc/service-tests.md @@ -229,8 +229,6 @@ static render({ status, result }) { We can also use nock to intercept API calls to return a known response body. ```js -const { colorScheme } = require('../test-helpers') - t.create('Build passed (mocked)') .get('/build/wercker/go-wercker-api.json?style=_shields_test') .intercept(nock => @@ -241,7 +239,7 @@ t.create('Build passed (mocked)') .expectJSON({ name: 'build', value: 'passing', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('Build failed (mocked)') diff --git a/gh-badges/README.md b/gh-badges/README.md index 91548cfb62ff0..17a7f819a47a8 100644 --- a/gh-badges/README.md +++ b/gh-badges/README.md @@ -27,7 +27,7 @@ const bf = new BadgeFactory() const format = { text: ['build', 'passed'], - colorscheme: 'green', + color: 'green', template: 'flat', } @@ -44,41 +44,67 @@ The format is the following: format: 'svg', // Also supports json - colorscheme: 'green', - // or ... - colorA: '#555', - colorB: '#4c1', + color: '#4c1', + labelColor: '#555', // See templates/ for a list of available templates. // Each offers a different visual design. template: 'flat', + + // Deprecated attributes: + colorscheme: 'green', // Now an alias for `color`. + colorB: '#4c1', // Now an alias for `color`. + colorA: '#555', // Now an alias for `labelColor`. } ``` ### See also -- [colorscheme.json](./lib/colorscheme.json) for the `colorscheme` option - [templates/](./templates) for the `template` option -## Defaults - -If you want to use a colorscheme, head to `lib/colorscheme.json`. Each scheme -has a name and a [CSS/SVG color][] for the color used in the first box (for the -first piece of text, field `colorA`) and for the one used in the second box -(field `colorB`). - +## Colors + +There are three ways to specify `color` and `labelColor`: + +1. One of the [Shields named colors](./lib/color.js): + +- ![][brightgreen] +- ![][green] +- ![][yellow] +- ![][yellowgreen] +- ![][orange] +- ![][red] +- ![][blue] +- ![][grey] ![][gray] – the default `labelColor` +- ![][lightgrey] ![][lightgray] – the default `color` + +2. A three- or six-character hex color, optionally prefixed with `#`: + +- ![][4c1] +- ![][#007fff] +- etc. + +3. [Any valid CSS color][css color], e.g. + +- `rgb(...)`, `rgba(...)` +- `hsl(...)`, `hsla(...)` +- ![][aqua] ![][fuchsia] ![][lightslategray] etc. + +[brightgreen]: https://img.shields.io/badge/brightgreen-brightgreen.svg +[green]: https://img.shields.io/badge/green-green.svg +[yellow]: https://img.shields.io/badge/yellow-yellow.svg +[yellowgreen]: https://img.shields.io/badge/yellowgreen-yellowgreen.svg +[orange]: https://img.shields.io/badge/orange-orange.svg +[red]: https://img.shields.io/badge/red-red.svg +[blue]: https://img.shields.io/badge/blue-blue.svg +[grey]: https://img.shields.io/badge/grey-grey.svg +[gray]: https://img.shields.io/badge/gray-gray.svg +[lightgrey]: https://img.shields.io/badge/lightgrey-lightgrey.svg +[lightgray]: https://img.shields.io/badge/lightgray-lightgray.svg +[4c1]: https://img.shields.io/badge/4c1-4c1.svg +[#007fff]: https://img.shields.io/badge/%23007fff-007fff.svg +[aqua]: https://img.shields.io/badge/aqua-aqua.svg +[fuchsia]: https://img.shields.io/badge/fuchsia-fuchsia.svg +[lightslategray]: https://img.shields.io/badge/lightslategray-lightslategray.svg +[css color]: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value [css/svg color]: http://www.w3.org/TR/SVG/types.html#DataTypeColor - -```js -"green": { - "colorB": "#4c1" -} -``` - -Both `colorA` and `colorB` have default values. Usually, the first box uses the -same dark grey, so you can rely on that default value by not providing a -`"colorA"` field (such as above). - -You can also use the `"colorA"` and `"colorB"` fields directly in the badges if -you don't want to make a color scheme for it. In that case, remove the -`"colorscheme"` field altogether. diff --git a/gh-badges/lib/badge-cli.js b/gh-badges/lib/badge-cli.js index 719bed9a17ce7..58d3a61e2129b 100755 --- a/gh-badges/lib/badge-cli.js +++ b/gh-badges/lib/badge-cli.js @@ -4,16 +4,16 @@ const makeBadge = require('./make-badge') const svg2img = require('./svg-to-img') -const colorscheme = require('./colorscheme.json') +const { namedColors } = require('./color') if (process.argv.length < 4) { - console.log('Usage: badge subject status [:colorscheme] [.output] [@style]') + console.log('Usage: badge subject status [:color] [.output] [@style]') console.log( - 'Or: badge subject status right-color [left-color] [.output] [@style]' + 'Or: badge subject status color [labelColor] [.output] [@style]' ) console.log() - console.log(` colorscheme: one of ${Object.keys(colorscheme).join(', ')}.`) - console.log(' left-color, right-color:') + console.log(' color, labelColor:') + console.log(` one of ${Object.keys(namedColors).join(', ')}.`) console.log(' #xxx (three hex digits)') console.log(' #xxxxxx (six hex digits)') console.log(' color (CSS color)') @@ -53,7 +53,7 @@ if (style) { if (color[0] === ':') { color = color.slice(1) - if (colorscheme[color] == null) { + if (namedColors[color] == null) { // Colorscheme not found. console.error('Invalid color scheme.') process.exit(1) diff --git a/gh-badges/lib/color.js b/gh-badges/lib/color.js new file mode 100644 index 0000000000000..db0d50d130d0d --- /dev/null +++ b/gh-badges/lib/color.js @@ -0,0 +1,51 @@ +'use strict' + +const isCSSColor = require('is-css-color') + +// When updating these, be sure also to update the list in `gh-badges/README.md`. +const namedColors = { + brightgreen: '#4c1', + green: '#97CA00', + yellow: '#dfb317', + yellowgreen: '#a4a61d', + orange: '#fe7d37', + red: '#e05d44', + blue: '#007ec6', + grey: '#555', + gray: '#555', + lightgrey: '#9f9f9f', + lightgray: '#9f9f9f', +} + +// This function returns false for `#ccc`. However `isCSSColor('#ccc')` is +// true. +const hexColorRegex = /^([\da-f]{3}){1,2}$/i +function isHexColor(s = '') { + return hexColorRegex.test(s.toLowerCase()) +} + +function normalizeColor(color) { + if (color === undefined) { + return undefined + } else if (color in namedColors) { + return color + } else if (isHexColor(color)) { + return `#${color.toLowerCase()}` + } else if (isCSSColor(color)) { + return color.toLowerCase() + } else { + return undefined + } +} + +function toSvgColor(color) { + const normalized = normalizeColor(color) + return normalized in namedColors ? namedColors[color] : normalized +} + +module.exports = { + namedColors, + isHexColor, + normalizeColor, + toSvgColor, +} diff --git a/gh-badges/lib/color.spec.js b/gh-badges/lib/color.spec.js new file mode 100644 index 0000000000000..a8a84d40beb62 --- /dev/null +++ b/gh-badges/lib/color.spec.js @@ -0,0 +1,37 @@ +'use strict' + +const { test, given, forCases } = require('sazerac') +const { isHexColor, normalizeColor, toSvgColor } = require('./color') + +test(isHexColor, () => { + forCases([given('f00bae'), given('4c1'), given('ABC123')]).expect(true) + forCases([given('f00bar'), given(''), given(undefined)]).expect(false) +}) + +test(normalizeColor, () => { + given('red').expect('red') + given('blue').expect('blue') + given('4c1').expect('#4c1') + given('f00f00').expect('#f00f00') + given('ABC123').expect('#abc123') + given('#ABC123').expect('#abc123') + given('papayawhip').expect('papayawhip') + given('purple').expect('purple') + forCases([given(''), given(undefined), given('not-a-color')]).expect( + undefined + ) +}) + +test(toSvgColor, () => { + given('red').expect('#e05d44') + given('blue').expect('#007ec6') + given('4c1').expect('#4c1') + given('f00f00').expect('#f00f00') + given('ABC123').expect('#abc123') + given('#ABC123').expect('#abc123') + given('papayawhip').expect('papayawhip') + given('purple').expect('purple') + forCases([given(''), given(undefined), given('not-a-color')]).expect( + undefined + ) +}) diff --git a/gh-badges/lib/colorscheme.json b/gh-badges/lib/colorscheme.json deleted file mode 100644 index 133eed61be6a3..0000000000000 --- a/gh-badges/lib/colorscheme.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "brightgreen": { "colorB": "#4c1" }, - "green": { "colorB": "#97CA00" }, - "yellow": { "colorB": "#dfb317" }, - "yellowgreen": { "colorB": "#a4a61d" }, - "orange": { "colorB": "#fe7d37" }, - "red": { "colorB": "#e05d44" }, - "blue": { "colorB": "#007ec6" }, - "grey": { "colorB": "#555" }, - "gray": { "colorB": "#555" }, - "lightgrey": { "colorB": "#9f9f9f" }, - "lightgray": { "colorB": "#9f9f9f" } -} diff --git a/gh-badges/lib/make-badge.js b/gh-badges/lib/make-badge.js index da6a5dc4e3bad..11e36ca5f9e61 100644 --- a/gh-badges/lib/make-badge.js +++ b/gh-badges/lib/make-badge.js @@ -5,7 +5,7 @@ const path = require('path') const SVGO = require('svgo') const dot = require('dot') const anafanafo = require('anafanafo') -const isCSSColor = require('is-css-color') +const { normalizeColor, toSvgColor } = require('./color') // cache templates. const templates = {} @@ -92,26 +92,15 @@ function capitalize(s) { return s.charAt(0).toUpperCase() + s.slice(1) } -// check if colorA/B is a colorscheme else check if it's a valid css3 color else return undefined and let the badge assign the default color -function assignColor(color = '', colorschemeType = 'colorB') { - if (definedColorschemes[color] !== undefined) { - return definedColorschemes[color][colorschemeType] || undefined - } else if (isCSSColor(color)) { - return color - } else { - return undefined - } -} - -const definedColorschemes = require(path.join(__dirname, 'colorscheme.json')) - function makeBadge({ format, template, text, colorscheme, + color, colorA, colorB, + labelColor, logo, logoPosition, logoWidth, @@ -142,12 +131,6 @@ function makeBadge({ text = text.map(value => value.toUpperCase()) } - // colorA/B have a higher priority than colorscheme - colorA = colorA || colorscheme || undefined - colorB = colorB || colorscheme || undefined - colorA = assignColor(colorA, 'colorA') - colorB = assignColor(colorB, 'colorB') - const [left, right] = text let leftWidth = (anafanafo(left) / 10) | 0 // Increase chances of pixel grid alignment. @@ -169,6 +152,9 @@ function makeBadge({ logoPadding = logo ? 3 : 0 } + color = color || colorB || colorscheme + labelColor = labelColor || colorA + const context = { text: [left, right], escapedText: text.map(escapeXml), @@ -178,8 +164,11 @@ function makeBadge({ logoPosition, logoWidth, logoPadding, - colorA, - colorB, + // `color` and `labelColor` are included for the `_shields_test` template. + color: normalizeColor(color), + labelColor: normalizeColor(labelColor), + colorA: toSvgColor(labelColor), + colorB: toSvgColor(color), escapeXml, } diff --git a/gh-badges/lib/make-badge.spec.js b/gh-badges/lib/make-badge.spec.js index 63442cbb115ee..f4bfd189dc95d 100644 --- a/gh-badges/lib/make-badge.spec.js +++ b/gh-badges/lib/make-badge.spec.js @@ -6,46 +6,52 @@ const snapshot = require('snap-shot-it') const eol = require('eol') const isSvg = require('is-svg') const makeBadge = require('./make-badge') -const colorschemes = require('./colorscheme.json') -function testColor(color = '') { +function testColor(color = '', colorAttr = 'colorB') { return JSON.parse( makeBadge({ text: ['name', 'Bob'], - colorB: color, + [colorAttr]: color, format: 'json', template: '_shields_test', }) - ).colorB + ).color } describe('The badge generator', function() { describe('color test', function() { test(testColor, () => { // valid hex - given('#4c1').expect('#4c1') - given('#4C1').expect('#4C1') - given('#abc123').expect('#abc123') - given('#ABC123').expect('#ABC123') + forCases([ + given('#4c1'), + given('#4C1'), + given('4C1'), + given('4c1'), + ]).expect('#4c1') + forCases([ + given('#abc123'), + given('#ABC123'), + given('abc123'), + given('ABC123'), + ]).expect('#abc123') // valid rgb(a) given('rgb(0,128,255)').expect('rgb(0,128,255)') given('rgba(0,128,255,0)').expect('rgba(0,128,255,0)') // valid hsl(a) given('hsl(100, 56%, 10%)').expect('hsl(100, 56%, 10%)') given('hsla(25,20%,0%,0.1)').expect('hsla(25,20%,0%,0.1)') - // either a css named color or colorscheme + // CSS named color. given('papayawhip').expect('papayawhip') - given('red').expect(colorschemes['red'].colorB) - given('green').expect(colorschemes['green'].colorB) - given('blue').expect(colorschemes['blue'].colorB) - given('yellow').expect(colorschemes['yellow'].colorB) + // Shields named color. + given('red').expect('red') + given('green').expect('green') + given('blue').expect('blue') + given('yellow').expect('yellow') forCases( // invalid hex given('#123red'), // contains letter above F given('#red'), // contains letter above F - given('123456'), // contains no # symbol - given('123'), // contains no # symbol // invalid rgb(a) given('rgb(220,128,255,0.5)'), // has alpha given('rgba(0,0,255)'), // no alpha @@ -62,6 +68,16 @@ describe('The badge generator', function() { }) }) + describe('color aliases', function() { + test(testColor, () => { + forCases([ + given('#4c1', 'color'), + given('#4c1', 'colorB'), + given('#4c1', 'colorscheme'), + ]).expect('#4c1') + }) + }) + describe('SVG', function() { it('should produce SVG', function() { const svg = makeBadge({ text: ['cactus', 'grown'], format: 'svg' }) diff --git a/gh-badges/templates/_shields_test-template.json b/gh-badges/templates/_shields_test-template.json index e10a68d83c146..3821a8cb05dfd 100644 --- a/gh-badges/templates/_shields_test-template.json +++ b/gh-badges/templates/_shields_test-template.json @@ -1,9 +1,9 @@ { -{{?it.colorA}} - "colorA": {{=JSON.stringify(it.colorA)}}, +{{?it.color}} + "color": {{=JSON.stringify(it.color)}}, {{?}} -{{?it.colorB}} - "colorB": {{=JSON.stringify(it.colorB)}}, +{{?it.labelColor}} + "labelColor": {{=JSON.stringify(it.labelColor)}} {{?}} "name": {{=JSON.stringify(it.text[0])}}, "value": {{=JSON.stringify(it.text[1])}} diff --git a/lib/badge-data.js b/lib/badge-data.js index ddb2fb1ecce02..3fab2000e59ea 100644 --- a/lib/badge-data.js +++ b/lib/badge-data.js @@ -1,10 +1,9 @@ 'use strict' -const isCSSColor = require('is-css-color') +const { toSvgColor } = require('../gh-badges/lib/color') const logos = require('./load-logos')() const simpleIcons = require('./load-simple-icons')() const { svg2base64, isDataUri } = require('./logo-helper') -const colorschemes = require('../gh-badges/lib/colorscheme.json') function toArray(val) { if (val === undefined) { @@ -30,43 +29,6 @@ function prependPrefix(s, prefix) { } } -function isHexColor(s = '') { - return /^([\da-f]{3}){1,2}$/i.test(s) -} - -function makeColor(color) { - if (isHexColor(color)) { - return `#${color}` - } else if (colorschemes[color] !== undefined) { - return colorschemes[color].colorB - } else if (isCSSColor(color)) { - return color - } else { - return undefined - } -} - -function makeColorB(defaultColor, overrides) { - return makeColor(overrides.colorB || defaultColor) -} - -function setBadgeColor(badgeData, color) { - if (isHexColor(color)) { - badgeData.colorB = `#${color}` - delete badgeData.colorscheme - } else if (colorschemes[color] !== undefined) { - badgeData.colorscheme = color - delete badgeData.colorB - } else if (isCSSColor(color)) { - badgeData.colorB = color - delete badgeData.colorscheme - } else { - badgeData.colorscheme = 'red' - delete badgeData.colorB - } - return badgeData -} - function makeLabel(defaultLabel, overrides) { return `${ overrides.label === undefined @@ -80,18 +42,18 @@ function getShieldsIcon(icon = '', color = '') { if (!logos[icon]) { return undefined } - color = makeColor(color) + color = toSvgColor(color) return color ? logos[icon].svg.replace(/fill="(.+?)"/g, `fill="${color}"`) : logos[icon].base64 } -function getSimpleIcon(icon = '', color = null) { +function getSimpleIcon(icon = '', color) { icon = typeof icon === 'string' ? icon.toLowerCase().replace(/ /g, '-') : '' if (!simpleIcons[icon]) { return undefined } - color = makeColor(color) + color = toSvgColor(color) return color ? simpleIcons[icon].svg.replace(' { - forCases([given('f00bae'), given('4c1')]).expect(true) - forCases([given('f00bar'), given(''), given(undefined)]).expect(false) - }) - test(makeLabel, () => { given('my badge', {}).expect('my badge') given('My bAdge', {}).expect('my badge') @@ -70,40 +62,8 @@ describe('Badge data helpers', function() { logoPosition: 10, logoWidth: 25, links: ['https://example.com/'], - colorA: '#007ec6', - colorB: '#f00bae', - }) - }) - - test(makeColor, () => { - given('red').expect('#e05d44') - given('blue').expect('#007ec6') - given('4c1').expect('#4c1') - given('f00f00').expect('#f00f00') - given('papayawhip').expect('papayawhip') - given('purple').expect('purple') - }) - - test(setBadgeColor, () => { - given({}, 'red').expect({ colorscheme: 'red' }) - given({}, 'f00f00').expect({ colorB: '#f00f00' }) - given({ colorB: '#f00f00', colorscheme: 'blue' }, 'red').expect({ - colorscheme: 'red', - }) - given({ colorB: '#f00f00', colorscheme: 'blue' }, 'blue').expect({ - colorscheme: 'blue', - }) - given({ colorB: '#f00f00', colorscheme: 'blue' }, 'papayawhip').expect({ - colorB: 'papayawhip', - }) - given({ colorB: '#f00f00', colorscheme: 'blue' }, 'purple').expect({ - colorB: 'purple', - }) - given({ colorB: '#b00b00', colorscheme: 'blue' }, '4c1').expect({ - colorB: '#4c1', - }) - given({ colorB: '#b00b00', colorscheme: 'blue' }, 'f00f00').expect({ - colorB: '#f00f00', + colorA: 'blue', + colorB: 'f00bae', }) }) }) diff --git a/lib/server.js b/lib/server.js index ca5c56090dcba..a37836243dbab 100644 --- a/lib/server.js +++ b/lib/server.js @@ -161,7 +161,7 @@ module.exports = class Server { const format = match[1] const badgeData = makeBadgeData('404', query) badgeData.text[1] = 'badge not found' - badgeData.colorscheme = 'red' + badgeData.colorB = 'red' // Add format to badge data. badgeData.format = format const svg = makeBadge(badgeData) diff --git a/package.json b/package.json index 4c28917a5daf2..90dc07566bd56 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,6 @@ "fsos": "^1.1.3", "gh-badges": "file:gh-badges", "glob": "^7.1.1", - "is-css-color": "^1.0.0", "joi": "14.3.1", "js-yaml": "^3.12.1", "jsonpath": "~1.0.0", diff --git a/scripts/refactoring-cli.js b/scripts/refactoring-cli.js index 4fae5b0c37e10..4e8b09270cff0 100644 --- a/scripts/refactoring-cli.js +++ b/scripts/refactoring-cli.js @@ -1,10 +1,8 @@ 'use strict' const chalk = require('chalk') -const mapValues = require('lodash.mapvalues') -const colorscheme = require('../gh-badges/lib/colorscheme.json') -const colorsMap = mapValues(colorscheme, 'colorB') +const { namedColors } = require('../gh-badges/lib/color') const { floorCount } = require('../lib/color-formatters') const { loadServiceClasses } = require('../services') @@ -19,4 +17,4 @@ const color = floorCount(percentDone, 10, 50, 100) console.log(`Found ${serviceClasses.length} services:`) console.log(`- ${legacyServices} legacy services`) console.log(`- ${newServices} new services`) -console.log(chalk.hex(colorsMap[color])(`${percentDone}% done`)) +console.log(chalk.hex(namedColors[color])(`${percentDone}% done`)) diff --git a/services/appveyor/appveyor-ci.tester.js b/services/appveyor/appveyor-ci.tester.js index 8983788a637e7..d7749551311ec 100644 --- a/services/appveyor/appveyor-ci.tester.js +++ b/services/appveyor/appveyor-ci.tester.js @@ -24,4 +24,4 @@ t.create('CI status on project that does exist but has no builds yet') .get('/gruntjs/grunt') .reply(200, {}) ) - .expectJSON({ name: 'build', value: 'no builds found', colorB: '#9f9f9f' }) + .expectJSON({ name: 'build', value: 'no builds found', color: 'lightgrey' }) diff --git a/services/appveyor/appveyor-tests.tester.js b/services/appveyor/appveyor-tests.tester.js index dec4f9f08be53..71fe23564937b 100644 --- a/services/appveyor/appveyor-tests.tester.js +++ b/services/appveyor/appveyor-tests.tester.js @@ -77,4 +77,4 @@ t.create('Test status on project that does exist but has no builds yet') .get('/gruntjs/grunt') .reply(200, {}) ) - .expectJSON({ name: 'tests', value: 'no builds found', colorB: '#9f9f9f' }) + .expectJSON({ name: 'tests', value: 'no builds found', color: 'lightgrey' }) diff --git a/services/aur/aur.tester.js b/services/aur/aur.tester.js index 64f98c9294228..831200e464162 100644 --- a/services/aur/aur.tester.js +++ b/services/aur/aur.tester.js @@ -20,7 +20,7 @@ t.create('version (valid)') Joi.object().keys({ name: 'aur', value: isVPlusDottedVersionNClausesWithOptionalSuffix, - colorB: '#007ec6', + color: 'blue', }) ) @@ -30,7 +30,7 @@ t.create('version (valid, out of date)') Joi.object().keys({ name: 'aur', value: isVPlusDottedVersionNClausesWithOptionalSuffix, - colorB: '#fe7d37', + color: 'orange', }) ) diff --git a/services/base.js b/services/base.js index 408770003afd4..f76f28641d385 100644 --- a/services/base.js +++ b/services/base.js @@ -14,12 +14,7 @@ const { const coalesce = require('../lib/coalesce') const validate = require('../lib/validate') const { checkErrorResponse } = require('../lib/error-helper') -const { - makeLogo, - toArray, - makeColor, - setBadgeColor, -} = require('../lib/badge-data') +const { makeLogo, toArray } = require('../lib/badge-data') const trace = require('./trace') const { validateExample, transformExample } = require('./transform-example') const { assertValidCategory } = require('./categories') @@ -389,15 +384,14 @@ class BaseService { }), logoWidth: +overrideLogoWidth, links: toArray(overrideLink || serviceLink), - colorA: makeColor(labelColor), + color, + labelColor, cacheLengthSeconds: coalesce( serviceCacheLengthSeconds, defaultCacheLengthSeconds ), } - setBadgeColor(badgeData, color) - return badgeData } diff --git a/services/base.spec.js b/services/base.spec.js index effb6ed1a47ed..0f29b6a6daff2 100644 --- a/services/base.spec.js +++ b/services/base.spec.js @@ -5,7 +5,6 @@ const { expect } = require('chai') const { test, given, forCases } = require('sazerac') const sinon = require('sinon') const trace = require('./trace') -const { colorScheme: colorsB } = require('./test-helpers') const { NotFound, @@ -386,7 +385,7 @@ describe('BaseService', function() { { colorA: '42f483' }, { color: 'green' } ) - expect(badgeData.colorA).to.equal('#42f483') + expect(badgeData.labelColor).to.equal('42f483') }) it('overrides the color', function() { @@ -394,7 +393,7 @@ describe('BaseService', function() { { colorB: '10ADED' }, { color: 'red' } ) - expect(badgeData.colorB).to.equal('#10ADED') + expect(badgeData.color).to.equal('10ADED') }) it('does not override the color in case of an error', function() { @@ -402,8 +401,7 @@ describe('BaseService', function() { { colorB: '10ADED' }, { isError: true, color: 'lightgray' } ) - expect(badgeData.colorB).to.be.undefined - expect(badgeData.colorscheme).to.equal('lightgray') + expect(badgeData.color).to.equal('lightgray') }) it('overrides the logo', function() { @@ -481,12 +479,12 @@ describe('BaseService', function() { it('applies the service color', function() { const badgeData = DummyService._makeBadgeData({}, { color: 'red' }) - expect(badgeData.colorscheme).to.equal('red') + expect(badgeData.color).to.equal('red') }) it('applies the service label color', function() { const badgeData = DummyService._makeBadgeData({}, { labelColor: 'red' }) - expect(badgeData.colorA).to.equal(colorsB.red) + expect(badgeData.labelColor).to.equal('red') }) }) @@ -498,12 +496,12 @@ describe('BaseService', function() { it('uses the default color', function() { const badgeData = DummyService._makeBadgeData({}, {}) - expect(badgeData.colorscheme).to.equal('lightgrey') + expect(badgeData.color).to.equal('lightgrey') }) - it('provides no default colorA', function() { + it('provides no default label color', function() { const badgeData = DummyService._makeBadgeData({}, {}) - expect(badgeData.colorA).to.be.undefined + expect(badgeData.labelColor).to.be.undefined }) }) }) @@ -546,12 +544,12 @@ describe('BaseService', function() { expect(mockSendBadge).to.have.been.calledOnce expect(mockSendBadge).to.have.been.calledWith(expectedFormat, { text: ['cat', 'Hello namedParamA: bar with queryParamA: ?'], - colorscheme: 'lightgrey', + color: 'lightgrey', template: undefined, logo: undefined, logoWidth: NaN, links: [], - colorA: undefined, + labelColor: undefined, cacheLengthSeconds: undefined, }) }) diff --git a/services/bintray/bintray.tester.js b/services/bintray/bintray.tester.js index b2b90fa165090..63b8d73566290 100644 --- a/services/bintray/bintray.tester.js +++ b/services/bintray/bintray.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme } = require('../test-helpers') const { isVPlusDottedVersionNClausesWithOptionalSuffix, } = require('../test-validators') @@ -38,5 +37,5 @@ t.create('version (mocked)') .expectJSON({ name: 'bintray', value: 'v1.5.7', - colorB: colorScheme.blue, + color: 'blue', }) diff --git a/services/cauditor/cauditor.tester.js b/services/cauditor/cauditor.tester.js index 1b8553d511d88..b387ac4a19b30 100644 --- a/services/cauditor/cauditor.tester.js +++ b/services/cauditor/cauditor.tester.js @@ -8,9 +8,8 @@ const t = (module.exports = new ServiceTester({ })) t.create('no longer available') - .get('/mi/matthiasmullie/scrapbook/master.json?style=_shields_test') + .get('/mi/matthiasmullie/scrapbook/master.json') .expectJSON({ name: 'cauditor', value: 'no longer available', - colorB: '#9f9f9f', }) diff --git a/services/chocolatey/chocolatey.tester.js b/services/chocolatey/chocolatey.tester.js index d0d49418a6e09..cf123282832fb 100644 --- a/services/chocolatey/chocolatey.tester.js +++ b/services/chocolatey/chocolatey.tester.js @@ -7,7 +7,6 @@ const { isVPlusDottedVersionNClauses, isVPlusDottedVersionNClausesWithOptionalSuffix, } = require('../test-validators') -const { colorScheme } = require('../test-helpers') const { nuGetV2VersionJsonWithDash, nuGetV2VersionJsonFirstCharZero, @@ -74,7 +73,7 @@ t.create('version (mocked, yellow badge)') .expectJSON({ name: 'chocolatey', value: 'v1.2-beta', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('version (mocked, orange badge)') @@ -89,7 +88,7 @@ t.create('version (mocked, orange badge)') .expectJSON({ name: 'chocolatey', value: 'v0.35', - colorB: colorScheme.orange, + color: 'orange', }) t.create('version (mocked, blue badge)') @@ -104,7 +103,7 @@ t.create('version (mocked, blue badge)') .expectJSON({ name: 'chocolatey', value: 'v1.2.7', - colorB: colorScheme.blue, + color: 'blue', }) t.create('version (not found)') @@ -150,7 +149,7 @@ t.create('version (pre) (mocked, yellow badge)') .expectJSON({ name: 'chocolatey', value: 'v1.2-beta', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('version (pre) (mocked, orange badge)') @@ -165,7 +164,7 @@ t.create('version (pre) (mocked, orange badge)') .expectJSON({ name: 'chocolatey', value: 'v0.35', - colorB: colorScheme.orange, + color: 'orange', }) t.create('version (pre) (mocked, blue badge)') @@ -180,7 +179,7 @@ t.create('version (pre) (mocked, blue badge)') .expectJSON({ name: 'chocolatey', value: 'v1.2.7', - colorB: colorScheme.blue, + color: 'blue', }) t.create('version (pre) (not found)') diff --git a/services/circleci/circleci.tester.js b/services/circleci/circleci.tester.js index fb0fdda9f7cca..7621a48d79e84 100644 --- a/services/circleci/circleci.tester.js +++ b/services/circleci/circleci.tester.js @@ -80,5 +80,5 @@ t.create('circle ci (invalid json)') .expectJSON({ name: 'build', value: 'invalid response data', - colorB: '#9f9f9f', + color: 'lightgray', }) diff --git a/services/cocoapods/cocoapods.service.js b/services/cocoapods/cocoapods.service.js index 7e89273607a37..007baa33398ca 100644 --- a/services/cocoapods/cocoapods.service.js +++ b/services/cocoapods/cocoapods.service.js @@ -27,7 +27,7 @@ module.exports = class CocoapodsVersionPlatformLicense extends LegacyService { const apiUrl = `https://trunk.cocoapods.org/api/v1/pods/${spec}/specs/latest` const typeToLabel = { v: 'pod', p: 'platform', l: 'license' } const badgeData = getBadgeData(typeToLabel[type], data) - badgeData.colorscheme = null + badgeData.colorscheme = undefined request(apiUrl, (err, res, buffer) => { if (checkErrorResponse(badgeData, err, res)) { sendBadge(format, badgeData) diff --git a/services/cookbook/cookbook.tester.js b/services/cookbook/cookbook.tester.js index 08ebe479149e4..88df4d112f0e0 100644 --- a/services/cookbook/cookbook.tester.js +++ b/services/cookbook/cookbook.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme } = require('../test-helpers') const { isVPlusDottedVersionAtLeastOne } = require('../test-validators') const t = (module.exports = require('../create-service-tester')()) @@ -27,5 +26,5 @@ t.create('version (mocked)') .expectJSON({ name: 'cookbook', value: 'v4.1.0', - colorB: colorScheme.blue, + color: 'blue', }) diff --git a/services/ctan/ctan.tester.js b/services/ctan/ctan.tester.js index 521b17698b7be..56023c0a9074d 100644 --- a/services/ctan/ctan.tester.js +++ b/services/ctan/ctan.tester.js @@ -2,7 +2,6 @@ const Joi = require('joi') const ServiceTester = require('../service-tester') -const { colorScheme } = require('../test-helpers') const { isVPlusDottedVersionAtLeastOne } = require('../test-validators') const t = (module.exports = new ServiceTester({ @@ -73,5 +72,5 @@ t.create('version (mocked)') .expectJSON({ name: 'ctan', value: 'v1.11', - colorB: colorScheme.blue, + color: 'blue', }) diff --git a/services/dependabot/dependabot.tester.js b/services/dependabot/dependabot.tester.js index a6a6633fb41a6..8c97ce730bccc 100644 --- a/services/dependabot/dependabot.tester.js +++ b/services/dependabot/dependabot.tester.js @@ -3,7 +3,6 @@ const Joi = require('joi') const ServiceTester = require('../service-tester') const { isIntegerPercentage } = require('../test-validators') -const { colorScheme: colorsB } = require('../test-helpers') const t = (module.exports = new ServiceTester({ id: 'dependabot', @@ -26,7 +25,7 @@ t.create('semver stability (invalid error)') .expectJSON({ name: 'semver stability', value: 'invalid', - colorB: colorsB.lightgrey, + color: 'lightgray', }) t.create('semver stability (missing dependency)') diff --git a/services/discord/discord.tester.js b/services/discord/discord.tester.js index 5c07fbc471d04..c0df09b380cb6 100644 --- a/services/discord/discord.tester.js +++ b/services/discord/discord.tester.js @@ -1,12 +1,8 @@ 'use strict' const Joi = require('joi') -const ServiceTester = require('../service-tester') -const t = (module.exports = new ServiceTester({ - id: 'discord', - title: 'Discord', -})) +const t = (module.exports = require('../create-service-tester')()) t.create('gets status for Reactiflux') .get('/102860784329052160.json?style=_shields_test') @@ -14,7 +10,7 @@ t.create('gets status for Reactiflux') Joi.object().keys({ name: 'chat', value: Joi.string().regex(/^[0-9]+ online$/), - colorB: '#4c1', + color: 'brightgreen', }) ) @@ -42,8 +38,3 @@ t.create('server error') .reply(500, 'Something broke') ) .expectJSON({ name: 'chat', value: 'inaccessible' }) - -t.create('connection error') - .get('/102860784329052160.json') - .networkOff() - .expectJSON({ name: 'chat', value: 'inaccessible' }) diff --git a/services/docker/docker-automated.tester.js b/services/docker/docker-automated.tester.js index b528d00905f51..240d0e2a1cfdd 100644 --- a/services/docker/docker-automated.tester.js +++ b/services/docker/docker-automated.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme: colorsB } = require('../test-helpers') const { dockerBlue } = require('./docker-helpers') const isAutomatedBuildStatus = Joi.string().valid('automated', 'manual') @@ -39,7 +38,7 @@ t.create('docker automated build - automated') .expectJSON({ name: 'docker build', value: 'automated', - colorB: `#${dockerBlue}`, + color: `#${dockerBlue}`, }) t.create('docker automated build - manual') @@ -49,7 +48,7 @@ t.create('docker automated build - manual') .get('/v2/repositories/library/ubuntu') .reply(200, { is_automated: false }) ) - .expectJSON({ name: 'docker build', value: 'manual', colorB: colorsB.yellow }) + .expectJSON({ name: 'docker build', value: 'manual', color: 'yellow' }) t.create('docker automated build - colorB override in manual') .get('/_/ubuntu.json?colorB=fedcba&style=_shields_test') @@ -62,7 +61,7 @@ t.create('docker automated build - colorB override in manual') Joi.object().keys({ name: 'docker build', value: isAutomatedBuildStatus, - colorB: '#fedcba', + color: '#fedcba', }) ) @@ -77,6 +76,6 @@ t.create('docker automated build - colorB override in automated') Joi.object().keys({ name: 'docker build', value: isAutomatedBuildStatus, - colorB: '#fedcba', + color: '#fedcba', }) ) diff --git a/services/docker/docker-build.tester.js b/services/docker/docker-build.tester.js index ae023374b3a26..9d04ce19ae62b 100644 --- a/services/docker/docker-build.tester.js +++ b/services/docker/docker-build.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme: colorsB } = require('../test-helpers') const { dockerBlue } = require('./docker-helpers') const { isBuildStatus } = require('../../lib/build-status') @@ -30,7 +29,7 @@ t.create('docker build status (passing)') .expectJSON({ name: 'docker build', value: 'passing', - colorB: colorsB.brightgreen, + color: 'brightgreen', }) t.create('docker build status (failing)') @@ -40,7 +39,7 @@ t.create('docker build status (failing)') .get('/v2/repositories/library/ubuntu/buildhistory') .reply(200, { results: [{ status: -1 }] }) ) - .expectJSON({ name: 'docker build', value: 'failing', colorB: colorsB.red }) + .expectJSON({ name: 'docker build', value: 'failing', color: 'red' }) t.create('docker build status (building)') .get('/_/ubuntu.json?style=_shields_test') @@ -52,32 +51,5 @@ t.create('docker build status (building)') .expectJSON({ name: 'docker build', value: 'building', - colorB: `#${dockerBlue}`, + color: `#${dockerBlue}`, }) - -t.create('docker build status (override colorB for passing)') - .get('/_/ubuntu.json?colorB=fedcba&style=_shields_test') - .intercept(nock => - nock('https://registry.hub.docker.com/') - .get('/v2/repositories/library/ubuntu/buildhistory') - .reply(200, { results: [{ status: 10 }] }) - ) - .expectJSON({ name: 'docker build', value: 'passing', colorB: '#fedcba' }) - -t.create('docker build status (override colorB for failing)') - .get('/_/ubuntu.json?colorB=fedcba&style=_shields_test') - .intercept(nock => - nock('https://registry.hub.docker.com/') - .get('/v2/repositories/library/ubuntu/buildhistory') - .reply(200, { results: [{ status: -1 }] }) - ) - .expectJSON({ name: 'docker build', value: 'failing', colorB: '#fedcba' }) - -t.create('docker build status (override colorB for building)') - .get('/_/ubuntu.json?colorB=fedcba&style=_shields_test') - .intercept(nock => - nock('https://registry.hub.docker.com/') - .get('/v2/repositories/library/ubuntu/buildhistory') - .reply(200, { results: [{ status: 1 }] }) - ) - .expectJSON({ name: 'docker build', value: 'building', colorB: '#fedcba' }) diff --git a/services/docker/docker-pulls.tester.js b/services/docker/docker-pulls.tester.js index 12853ea9b7dbd..708c17bbc9f28 100644 --- a/services/docker/docker-pulls.tester.js +++ b/services/docker/docker-pulls.tester.js @@ -12,17 +12,7 @@ t.create('docker pulls (valid, library)') Joi.object().keys({ name: 'docker pulls', value: isMetric, - colorB: `#${dockerBlue}`, - }) - ) - -t.create('docker pulls (override colorB)') - .get('/_/ubuntu.json?colorB=fedcba&style=_shields_test') - .expectJSONTypes( - Joi.object().keys({ - name: 'docker pulls', - value: isMetric, - colorB: '#fedcba', + color: `#${dockerBlue}`, }) ) diff --git a/services/docker/docker-stars.tester.js b/services/docker/docker-stars.tester.js index d477476a843a4..f23254494870c 100644 --- a/services/docker/docker-stars.tester.js +++ b/services/docker/docker-stars.tester.js @@ -12,17 +12,7 @@ t.create('docker stars (valid, library)') Joi.object().keys({ name: 'docker stars', value: isMetric, - colorB: `#${dockerBlue}`, - }) - ) - -t.create('docker stars (override colorB)') - .get('/_/ubuntu.json?colorB=fedcba&style=_shields_test') - .expectJSONTypes( - Joi.object().keys({ - name: 'docker stars', - value: isMetric, - colorB: '#fedcba', + color: `#${dockerBlue}`, }) ) diff --git a/services/dub/dub-download.tester.js b/services/dub/dub-download.tester.js index 2a273cb28ef8b..ee24e9e05cd59 100644 --- a/services/dub/dub-download.tester.js +++ b/services/dub/dub-download.tester.js @@ -2,15 +2,14 @@ const Joi = require('joi') const ServiceTester = require('../service-tester') -const { colorScheme } = require('../test-helpers') const { isMetric, isMetricOverTimePeriod } = require('../test-validators') const isDownloadsColor = Joi.equal( - colorScheme.red, - colorScheme.yellow, - colorScheme.yellowgreen, - colorScheme.green, - colorScheme.brightgreen + 'red', + 'yellow', + 'yellowgreen', + 'green', + 'brightgreen' ) const t = (module.exports = new ServiceTester({ @@ -24,7 +23,7 @@ t.create('total downloads (valid)') Joi.object().keys({ name: 'downloads', value: isMetric, - colorB: isDownloadsColor, + color: isDownloadsColor, }) ) @@ -34,7 +33,7 @@ t.create('total downloads, specific version (valid)') Joi.object().keys({ name: 'downloads@0.8.4', value: Joi.string().regex(/^[1-9][0-9]*[kMGTPEZY]?$/), - colorB: isDownloadsColor, + color: isDownloadsColor, }) ) .timeout(15000) @@ -45,7 +44,7 @@ t.create('total downloads, latest version (valid)') Joi.object().keys({ name: 'downloads@latest', value: Joi.string().regex(/^[1-9][0-9]*[kMGTPEZY]?$/), - colorB: isDownloadsColor, + color: isDownloadsColor, }) ) @@ -55,7 +54,7 @@ t.create('daily downloads (valid)') Joi.object().keys({ name: 'downloads', value: isMetricOverTimePeriod, - colorB: isDownloadsColor, + color: isDownloadsColor, }) ) @@ -65,7 +64,7 @@ t.create('weekly downloads (valid)') Joi.object().keys({ name: 'downloads', value: isMetricOverTimePeriod, - colorB: isDownloadsColor, + color: isDownloadsColor, }) ) @@ -75,7 +74,7 @@ t.create('monthly downloads (valid)') Joi.object().keys({ name: 'downloads', value: isMetricOverTimePeriod, - colorB: isDownloadsColor, + color: isDownloadsColor, }) ) diff --git a/services/dub/dub-version.tester.js b/services/dub/dub-version.tester.js index 3e189e13925a1..20755e8e2df4b 100644 --- a/services/dub/dub-version.tester.js +++ b/services/dub/dub-version.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme } = require('../test-helpers') const { isVPlusDottedVersionNClausesWithOptionalSuffix, } = require('../test-validators') @@ -14,7 +13,7 @@ t.create('version (valid)') Joi.object().keys({ name: 'dub', value: isVPlusDottedVersionNClausesWithOptionalSuffix, - colorB: Joi.equal(colorScheme.blue, colorScheme.orange), + color: Joi.equal('blue', 'orange'), }) ) diff --git a/services/dynamic/dynamic-json.tester.js b/services/dynamic/dynamic-json.tester.js index 1370b61527ff5..d1c06bec21d6c 100644 --- a/services/dynamic/dynamic-json.tester.js +++ b/services/dynamic/dynamic-json.tester.js @@ -2,7 +2,6 @@ const Joi = require('joi') const { expect } = require('chai') -const { colorScheme: colorsB } = require('../test-helpers') const t = (module.exports = require('../create-service-tester')()) @@ -14,7 +13,7 @@ t.create('Connection error') .expectJSON({ name: 'Package Name', value: 'inaccessible', - colorB: colorsB.lightgrey, + color: 'lightgray', }) t.create('No URL specified') @@ -22,7 +21,7 @@ t.create('No URL specified') .expectJSON({ name: 'Package Name', value: 'invalid query parameter: url', - colorB: colorsB.red, + color: 'red', }) t.create('No query specified') @@ -32,7 +31,7 @@ t.create('No query specified') .expectJSON({ name: 'Package Name', value: 'invalid query parameter: query', - colorB: colorsB.red, + color: 'red', }) t.create('Malformed url') @@ -42,7 +41,7 @@ t.create('Malformed url') .expectJSON({ name: 'Package Name', value: 'invalid', - colorB: colorsB.lightgrey, + color: 'lightgray', }) t.create('JSON from url') @@ -52,7 +51,7 @@ t.create('JSON from url') .expectJSON({ name: 'custom badge', value: 'shields.io', - colorB: colorsB.blue, + color: 'blue', }) t.create('JSON from uri (support uri query parameter)') @@ -62,7 +61,7 @@ t.create('JSON from uri (support uri query parameter)') .expectJSON({ name: 'custom badge', value: 'shields.io', - colorB: colorsB.blue, + color: 'blue', }) t.create('JSON from url | multiple results') @@ -100,7 +99,7 @@ t.create('JSON from url | object doesnt exist') .expectJSON({ name: 'custom badge', value: 'no result', - colorB: colorsB.lightgrey, + color: 'lightgray', }) t.create('JSON from url | invalid url') @@ -110,14 +109,14 @@ t.create('JSON from url | invalid url') .expectJSON({ name: 'custom badge', value: 'resource not found', - colorB: colorsB.red, + color: 'red', }) t.create('JSON from url | user color overrides default') .get( '.json?url=https://github.com/badges/shields/raw/master/package.json&query=$.name&colorB=10ADED&style=_shields_test' ) - .expectJSON({ name: 'custom badge', value: 'shields.io', colorB: '#10ADED' }) + .expectJSON({ name: 'custom badge', value: 'shields.io', color: '#10aded' }) t.create('JSON from url | error color overrides default') .get( @@ -126,7 +125,7 @@ t.create('JSON from url | error color overrides default') .expectJSON({ name: 'custom badge', value: 'resource not found', - colorB: colorsB.red, + color: 'red', }) t.create('JSON from url | error color overrides user specified') @@ -134,7 +133,7 @@ t.create('JSON from url | error color overrides user specified') .expectJSON({ name: 'custom badge', value: 'invalid query parameter: url', - colorB: colorsB.red, + color: 'red', }) let headers diff --git a/services/dynamic/dynamic-xml.tester.js b/services/dynamic/dynamic-xml.tester.js index ecd567bf5515e..b3d4e74898696 100644 --- a/services/dynamic/dynamic-xml.tester.js +++ b/services/dynamic/dynamic-xml.tester.js @@ -3,7 +3,6 @@ const Joi = require('joi') const { expect } = require('chai') const { isSemver } = require('../test-validators') -const { colorScheme: colorsB } = require('../test-helpers') const t = (module.exports = require('../create-service-tester')()) @@ -12,7 +11,7 @@ t.create('No URL specified') .expectJSON({ name: 'Package Name', value: 'invalid query parameter: url', - colorB: colorsB.red, + color: 'red', }) t.create('No query specified') @@ -22,7 +21,7 @@ t.create('No query specified') .expectJSON({ name: 'Package Name', value: 'invalid query parameter: query', - colorB: colorsB.red, + color: 'red', }) t.create('XML from url') @@ -32,7 +31,7 @@ t.create('XML from url') .expectJSON({ name: 'custom badge', value: 'IndieGala Helper', - colorB: colorsB.blue, + color: 'blue', }) t.create('XML from uri (support uri query parameter)') @@ -42,7 +41,7 @@ t.create('XML from uri (support uri query parameter)') .expectJSON({ name: 'custom badge', value: 'IndieGala Helper', - colorB: colorsB.blue, + color: 'blue', }) t.create('XML from url (attribute)') @@ -98,7 +97,7 @@ t.create('XML from url | query doesnt exist') .expectJSON({ name: 'custom badge', value: 'no result', - colorB: colorsB.lightgrey, + color: 'lightgray', }) t.create('XML from url | query doesnt exist (attribute)') @@ -108,7 +107,7 @@ t.create('XML from url | query doesnt exist (attribute)') .expectJSON({ name: 'custom badge', value: 'no result', - colorB: colorsB.lightgrey, + color: 'lightgray', }) t.create('XML from url | invalid url') @@ -118,7 +117,7 @@ t.create('XML from url | invalid url') .expectJSON({ name: 'custom badge', value: 'resource not found', - colorB: colorsB.red, + color: 'red', }) t.create('XML from url | user color overrides default') @@ -128,7 +127,7 @@ t.create('XML from url | user color overrides default') .expectJSON({ name: 'custom badge', value: 'IndieGala Helper', - colorB: '#10ADED', + color: '#10aded', }) t.create('XML from url | error color overrides default') @@ -138,7 +137,7 @@ t.create('XML from url | error color overrides default') .expectJSON({ name: 'custom badge', value: 'resource not found', - colorB: colorsB.red, + color: 'red', }) t.create('XML from url | error color overrides user specified') @@ -146,7 +145,7 @@ t.create('XML from url | error color overrides user specified') .expectJSON({ name: 'custom badge', value: 'invalid query parameter: url', - colorB: colorsB.red, + color: 'red', }) let headers diff --git a/services/dynamic/dynamic-yaml.tester.js b/services/dynamic/dynamic-yaml.tester.js index d88ab35cefa3d..e1d543b7c46fe 100644 --- a/services/dynamic/dynamic-yaml.tester.js +++ b/services/dynamic/dynamic-yaml.tester.js @@ -1,7 +1,5 @@ 'use strict' -const { colorScheme: colorsB } = require('../test-helpers') - const t = (module.exports = require('../create-service-tester')()) t.create('No URL specified') @@ -9,7 +7,7 @@ t.create('No URL specified') .expectJSON({ name: 'Package Name', value: 'invalid query parameter: url', - colorB: colorsB.red, + color: 'red', }) t.create('No query specified') @@ -19,7 +17,7 @@ t.create('No query specified') .expectJSON({ name: 'Package Name', value: 'invalid query parameter: query', - colorB: colorsB.red, + color: 'red', }) t.create('YAML from url') @@ -29,7 +27,7 @@ t.create('YAML from url') .expectJSON({ name: 'custom badge', value: 'coredns', - colorB: colorsB.blue, + color: 'blue', }) t.create('YAML from uri (support uri query parameter)') @@ -39,7 +37,7 @@ t.create('YAML from uri (support uri query parameter)') .expectJSON({ name: 'custom badge', value: 'coredns', - colorB: colorsB.blue, + color: 'blue', }) t.create('YAML from url | multiple results') @@ -67,7 +65,7 @@ t.create('YAML from url | object doesnt exist') .expectJSON({ name: 'custom badge', value: 'no result', - colorB: colorsB.lightgrey, + color: 'lightgray', }) t.create('YAML from url | invalid url') @@ -77,14 +75,14 @@ t.create('YAML from url | invalid url') .expectJSON({ name: 'custom badge', value: 'resource not found', - colorB: colorsB.red, + color: 'red', }) t.create('YAML from url | user color overrides default') .get( '.json?url=https://raw.githubusercontent.com/kubernetes/charts/568291d6e476c39ca8322c30c3f601d0383d4760/stable/coredns/Chart.yaml&query=$.name&colorB=10ADED&style=_shields_test' ) - .expectJSON({ name: 'custom badge', value: 'coredns', colorB: '#10ADED' }) + .expectJSON({ name: 'custom badge', value: 'coredns', color: '#10aded' }) t.create('YAML from url | error color overrides default') .get( @@ -93,7 +91,7 @@ t.create('YAML from url | error color overrides default') .expectJSON({ name: 'custom badge', value: 'resource not found', - colorB: colorsB.red, + color: 'red', }) t.create('YAML from url | error color overrides user specified') @@ -101,5 +99,5 @@ t.create('YAML from url | error color overrides user specified') .expectJSON({ name: 'custom badge', value: 'invalid query parameter: url', - colorB: colorsB.red, + color: 'red', }) diff --git a/services/github/github-commit-status.tester.js b/services/github/github-commit-status.tester.js index c33a0b74bd203..cf9857bea1722 100644 --- a/services/github/github-commit-status.tester.js +++ b/services/github/github-commit-status.tester.js @@ -1,6 +1,5 @@ 'use strict' -const { colorScheme: colorsB } = require('../test-helpers') const { invalidJSON } = require('../response-fixtures') const t = (module.exports = require('../create-service-tester')()) @@ -12,7 +11,7 @@ t.create('commit status - commit in branch') .expectJSON({ name: 'commit status', value: 'in master', - colorB: colorsB.brightgreen, + color: 'brightgreen', }) t.create( @@ -31,7 +30,7 @@ t.create( .expectJSON({ name: 'commit status', value: 'in master', - colorB: colorsB.brightgreen, + color: 'brightgreen', }) t.create('commit status - commit not in branch') @@ -41,7 +40,7 @@ t.create('commit status - commit not in branch') .expectJSON({ name: 'commit status', value: 'commit or branch not found', - colorB: colorsB.lightgrey, + color: 'lightgrey', }) t.create('commit status - unknown commit id') @@ -51,7 +50,7 @@ t.create('commit status - unknown commit id') .expectJSON({ name: 'commit status', value: 'not in v1.27.1', - colorB: colorsB.yellow, + color: 'yellow', }) t.create('commit status - unknown branch') @@ -61,7 +60,7 @@ t.create('commit status - unknown branch') .expectJSON({ name: 'commit status', value: 'commit or branch not found', - colorB: colorsB.lightgrey, + color: 'lightgrey', }) t.create('commit status - no common ancestor between commit and branch') @@ -71,7 +70,7 @@ t.create('commit status - no common ancestor between commit and branch') .expectJSON({ name: 'commit status', value: 'no common ancestor', - colorB: colorsB.lightgrey, + color: 'lightgrey', }) t.create('commit status - invalid JSON') @@ -88,7 +87,7 @@ t.create('commit status - invalid JSON') .expectJSON({ name: 'commit status', value: 'invalid', - colorB: colorsB.lightgrey, + color: 'lightgrey', }) t.create('commit status - network error') @@ -99,7 +98,7 @@ t.create('commit status - network error') .expectJSON({ name: 'commit status', value: 'inaccessible', - colorB: colorsB.red, + color: 'red', }) t.create('commit status - github server error') @@ -116,7 +115,7 @@ t.create('commit status - github server error') .expectJSON({ name: 'commit status', value: 'invalid', - colorB: colorsB.lightgrey, + color: 'lightgrey', }) t.create('commit status - 404 with empty JSON form github') @@ -133,7 +132,7 @@ t.create('commit status - 404 with empty JSON form github') .expectJSON({ name: 'commit status', value: 'invalid', - colorB: colorsB.lightgrey, + color: 'lightgrey', }) t.create('commit status - 404 with invalid JSON form github') @@ -150,5 +149,5 @@ t.create('commit status - 404 with invalid JSON form github') .expectJSON({ name: 'commit status', value: 'invalid', - colorB: colorsB.lightgrey, + color: 'lightgrey', }) diff --git a/services/github/github-followers.service.js b/services/github/github-followers.service.js index de996ee14e12e..90bc10181f5d7 100644 --- a/services/github/github-followers.service.js +++ b/services/github/github-followers.service.js @@ -66,7 +66,7 @@ module.exports = class GithubFollowers extends LegacyService { } try { badgeData.text[1] = JSON.parse(buffer).followers - badgeData.colorscheme = null + badgeData.colorscheme = undefined badgeData.colorB = '#4183C4' sendBadge(format, badgeData) } catch (e) { diff --git a/services/github/github-forks.service.js b/services/github/github-forks.service.js index cb4dae45f0a4b..e063189aecd33 100644 --- a/services/github/github-forks.service.js +++ b/services/github/github-forks.service.js @@ -63,7 +63,7 @@ module.exports = class GithubForks extends LegacyService { const data = JSON.parse(buffer) const forks = data.forks_count badgeData.text[1] = forks - badgeData.colorscheme = null + badgeData.colorscheme = undefined badgeData.colorB = '#4183C4' sendBadge(format, badgeData) } catch (e) { diff --git a/services/github/github-issue-detail.service.js b/services/github/github-issue-detail.service.js index 65c6e82af328a..5d56906a36d00 100644 --- a/services/github/github-issue-detail.service.js +++ b/services/github/github-issue-detail.service.js @@ -2,7 +2,6 @@ const LegacyService = require('../legacy-service') const { - makeColorB, makeLabel: getLabel, makeBadgeData: getBadgeData, makeLogo: getLogo, @@ -116,11 +115,8 @@ module.exports = class GithubIssueDetail extends LegacyService { switch (which) { case 's': { const state = (badgeData.text[1] = parsedData.state) - badgeData.colorscheme = null - badgeData.colorB = makeColorB( - githubStateColor(state), - queryParams - ) + badgeData.colorscheme = undefined + badgeData.colorB = queryParams.colorB || githubStateColor(state) break } case 'title': @@ -136,21 +132,17 @@ module.exports = class GithubIssueDetail extends LegacyService { .map(i => i.name) .join(' | ') if (parsedData.labels.length === 1) { - badgeData.colorscheme = null - badgeData.colorB = makeColorB( - parsedData.labels[0].color, - queryParams - ) + badgeData.colorscheme = undefined + badgeData.colorB = + queryParams.colorB || parsedData.labels[0].color } break case 'comments': { badgeData.text[0] = getLabel('comments', queryParams) const comments = (badgeData.text[1] = parsedData.comments) - badgeData.colorscheme = null - badgeData.colorB = makeColorB( - githubCommentsColor(comments), - queryParams - ) + badgeData.colorscheme = undefined + badgeData.colorB = + queryParams.coloB || githubCommentsColor(comments) break } case 'age': diff --git a/services/github/github-license.service.js b/services/github/github-license.service.js index f92be75ffb7c0..7e3ca82c14904 100644 --- a/services/github/github-license.service.js +++ b/services/github/github-license.service.js @@ -4,7 +4,6 @@ const LegacyService = require('../legacy-service') const { makeBadgeData: getBadgeData, makeLogo: getLogo, - setBadgeColor, } = require('../../lib/badge-data') const { licenseToColor } = require('../../lib/licenses') const { @@ -76,7 +75,7 @@ module.exports = class GithubLicense extends LegacyService { } else { badgeData.text[1] = license.spdx_id } - setBadgeColor(badgeData, licenseToColor(license.spdx_id)) + badgeData.colorB = licenseToColor(license.spdx_id) sendBadge(format, badgeData) } else { badgeData.text[1] = 'missing' diff --git a/services/github/github-license.tester.js b/services/github/github-license.tester.js index cb186499bbb4c..90b58dac27fa5 100644 --- a/services/github/github-license.tester.js +++ b/services/github/github-license.tester.js @@ -1,13 +1,11 @@ 'use strict' -const { makeColor } = require('../../lib/badge-data') const { licenseToColor } = require('../../lib/licenses') -const { colorScheme: colorsB } = require('../test-helpers') -const publicDomainLicenseColor = makeColor(licenseToColor('CC0-1.0')) -const permissiveLicenseColor = colorsB[licenseToColor('MIT')] -const copyleftLicenseColor = colorsB[licenseToColor('GPL-3.0')] -const unknownLicenseColor = colorsB[licenseToColor()] +const publicDomainLicenseColor = licenseToColor('CC0-1.0') +const permissiveLicenseColor = licenseToColor('MIT') +const copyleftLicenseColor = licenseToColor('GPL-3.0') +const unknownLicenseColor = licenseToColor() const t = (module.exports = require('../create-service-tester')()) @@ -16,7 +14,7 @@ t.create('Public domain license') .expectJSON({ name: 'license', value: 'CC0-1.0', - colorB: publicDomainLicenseColor, + color: `#${publicDomainLicenseColor}`, }) t.create('Copyleft license') @@ -24,23 +22,23 @@ t.create('Copyleft license') .expectJSON({ name: 'license', value: 'GPL-3.0', - colorB: copyleftLicenseColor, + color: copyleftLicenseColor, }) t.create('Permissive license') .get('/atom/atom.json?style=_shields_test') - .expectJSON({ name: 'license', value: 'MIT', colorB: permissiveLicenseColor }) + .expectJSON({ name: 'license', value: 'MIT', color: permissiveLicenseColor }) t.create('License for repo without a license') .get('/badges/badger.json?style=_shields_test') - .expectJSON({ name: 'license', value: 'missing', colorB: colorsB.red }) + .expectJSON({ name: 'license', value: 'missing', color: 'red' }) t.create('License for repo with an unrecognized license') .get('/philokev/sopel-noblerealms.json?style=_shields_test') .expectJSON({ name: 'license', value: 'unknown', - colorB: unknownLicenseColor, + color: unknownLicenseColor, }) t.create('License with SPDX id not appearing in configuration') @@ -63,7 +61,7 @@ t.create('License with SPDX id not appearing in configuration') .expectJSON({ name: 'license', value: 'EFL-1.0', - colorB: unknownLicenseColor, + color: unknownLicenseColor, }) t.create('License for unknown repo') @@ -71,7 +69,7 @@ t.create('License for unknown repo') .expectJSON({ name: 'license', value: 'repo not found', - colorB: colorsB.lightgrey, + color: 'lightgrey', }) t.create('License - API rate limit exceeded') @@ -89,5 +87,5 @@ t.create('License - API rate limit exceeded') .expectJSON({ name: 'license', value: 'access denied', - colorB: colorsB.lightgrey, + color: 'lightgrey', }) diff --git a/services/github/github-stars.tester.js b/services/github/github-stars.tester.js index 14275936d57ac..5c2b58783f7a3 100644 --- a/services/github/github-stars.tester.js +++ b/services/github/github-stars.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme: colorsB } = require('../test-helpers') const t = (module.exports = require('../create-service-tester')()) @@ -27,7 +26,7 @@ t.create('Stars (named color override)') Joi.object().keys({ name: 'stars', value: Joi.string().regex(/^\w+$/), - colorB: Joi.equal(colorsB.yellow).required(), + color: 'yellow', }) ) @@ -37,6 +36,6 @@ t.create('Stars (hex color override)') Joi.object().keys({ name: 'stars', value: Joi.string().regex(/^\w+$/), - colorB: Joi.equal('#abcdef').required(), + color: '#abcdef', }) ) diff --git a/services/github/github-tag.tester.js b/services/github/github-tag.tester.js index 17507708e1b2e..fb1b55eb964b3 100644 --- a/services/github/github-tag.tester.js +++ b/services/github/github-tag.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme: colorsB } = require('../test-helpers') const t = (module.exports = require('../create-service-tester')()) @@ -30,7 +29,7 @@ t.create('Tag (mocked response, no pre-releases, semver ordering)') .get('/repos/foo/bar/tags') .reply(200, tagsFixture) ) - .expectJSON({ name: 'tag', value: 'v1.2', colorB: colorsB.blue }) + .expectJSON({ name: 'tag', value: 'v1.2', color: 'blue' }) t.create('Tag (mocked response, include pre-releases, semver ordering)') .get('/tag-pre/foo/bar.json?style=_shields_test') @@ -39,7 +38,7 @@ t.create('Tag (mocked response, include pre-releases, semver ordering)') .get('/repos/foo/bar/tags') .reply(200, tagsFixture) ) - .expectJSON({ name: 'tag', value: 'v1.3-beta3', colorB: colorsB.orange }) + .expectJSON({ name: 'tag', value: 'v1.3-beta3', color: 'orange' }) t.create('Tag (mocked response, date ordering)') .get('/tag-date/foo/bar.json?style=_shields_test') @@ -48,4 +47,4 @@ t.create('Tag (mocked response, date ordering)') .get('/repos/foo/bar/tags') .reply(200, tagsFixture) ) - .expectJSON({ name: 'tag', value: 'cheese', colorB: colorsB.blue }) + .expectJSON({ name: 'tag', value: 'cheese', color: 'blue' }) diff --git a/services/hexpm/hexpm.tester.js b/services/hexpm/hexpm.tester.js index b4634feee2aa4..f4bd1731e8930 100644 --- a/services/hexpm/hexpm.tester.js +++ b/services/hexpm/hexpm.tester.js @@ -3,7 +3,6 @@ const Joi = require('joi') const ServiceTester = require('../service-tester') const { isMetric, isMetricOverTimePeriod } = require('../test-validators') -const { colorScheme } = require('../test-helpers') const isHexpmVersion = Joi.string().regex(/^v\d+.\d+.?\d?$/) @@ -56,7 +55,7 @@ t.create('license') Joi.object().keys({ name: 'license', value: Joi.string().required(), - colorB: colorScheme.blue, + color: 'blue', }) ) @@ -74,7 +73,7 @@ t.create('license (multiple licenses)') .expectJSON({ name: 'licenses', value: 'GPLv2, MIT', - colorB: colorScheme.blue, + color: 'blue', }) t.create('license (no license)') @@ -91,7 +90,7 @@ t.create('license (no license)') .expectJSON({ name: 'license', value: 'Unknown', - colorB: colorScheme.lightgrey, + color: 'lightgrey', }) t.create('license (not found)') diff --git a/services/jira/jira-issue.tester.js b/services/jira/jira-issue.tester.js index 717c2d720ea03..8d5b920c7dd8d 100644 --- a/services/jira/jira-issue.tester.js +++ b/services/jira/jira-issue.tester.js @@ -1,7 +1,6 @@ 'use strict' const t = (module.exports = require('../create-service-tester')()) -const { colorScheme } = require('../test-helpers') const { mockJiraCreds, restore, user, pass } = require('./jira-test-helpers') t.create('live: unknown issue') @@ -28,7 +27,7 @@ t.create('no status color') .expectJSON({ name: 'foo-123', value: 'pending', - colorB: colorScheme.lightgrey, + color: 'lightgrey', }) t.create('green status color') @@ -50,7 +49,7 @@ t.create('green status color') .expectJSON({ name: 'bar-345', value: 'done', - colorB: colorScheme.green, + color: 'green', }) t.create('medium-gray status color') @@ -72,7 +71,7 @@ t.create('medium-gray status color') .expectJSON({ name: 'abc-123', value: 'under review', - colorB: colorScheme.lightgrey, + color: 'lightgrey', }) t.create('yellow status color') @@ -94,7 +93,7 @@ t.create('yellow status color') .expectJSON({ name: 'test-001', value: 'in progress', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('brown status color') @@ -116,7 +115,7 @@ t.create('brown status color') .expectJSON({ name: 'zzz-789', value: 'muddy', - colorB: colorScheme.orange, + color: 'orange', }) t.create('warm-red status color') @@ -138,7 +137,7 @@ t.create('warm-red status color') .expectJSON({ name: 'fire-321', value: 'heating up', - colorB: colorScheme.red, + color: 'red', }) t.create('blue-gray status color') @@ -160,7 +159,7 @@ t.create('blue-gray status color') .expectJSON({ name: 'sky-775', value: 'cloudy', - colorB: colorScheme.blue, + color: 'blue', }) t.create('with mock credentials') diff --git a/services/jira/jira-sprint.tester.js b/services/jira/jira-sprint.tester.js index cadc43e2c5c77..58de592df4a1e 100644 --- a/services/jira/jira-sprint.tester.js +++ b/services/jira/jira-sprint.tester.js @@ -3,7 +3,6 @@ const Joi = require('joi') const t = (module.exports = require('../create-service-tester')()) const { isIntegerPercentage } = require('../test-validators') -const { colorScheme } = require('../test-helpers') const { mockJiraCreds, restore, user, pass } = require('./jira-test-helpers') const sprintId = 8 @@ -55,7 +54,7 @@ t.create('100% completion') .expectJSON({ name: 'completion', value: '100%', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('0% completion') @@ -80,7 +79,7 @@ t.create('0% completion') .expectJSON({ name: 'completion', value: '0%', - colorB: colorScheme.red, + color: 'red', }) t.create('no issues in sprint') @@ -97,7 +96,7 @@ t.create('no issues in sprint') .expectJSON({ name: 'completion', value: '0%', - colorB: colorScheme.red, + color: 'red', }) t.create('issue with null resolution value') @@ -127,7 +126,7 @@ t.create('issue with null resolution value') .expectJSON({ name: 'completion', value: '50%', - colorB: colorScheme.orange, + color: 'orange', }) t.create('with mock credentials') diff --git a/services/matrix/matrix.tester.js b/services/matrix/matrix.tester.js index 1bbf5915a597a..d2722fd56c48b 100644 --- a/services/matrix/matrix.tester.js +++ b/services/matrix/matrix.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme } = require('../test-helpers') const t = (module.exports = require('../create-service-tester')()) @@ -73,7 +72,7 @@ t.create('get room state as guest') .expectJSON({ name: 'chat', value: '2 users', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('get room state as member (backup method)') @@ -152,7 +151,7 @@ t.create('get room state as member (backup method)') .expectJSON({ name: 'chat', value: '2 users', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('bad server or connection') @@ -161,7 +160,7 @@ t.create('bad server or connection') .expectJSON({ name: 'chat', value: 'inaccessible', - colorB: colorScheme.lightgray, + color: 'lightgray', }) t.create('non-world readable room') @@ -198,7 +197,7 @@ t.create('non-world readable room') .expectJSON({ name: 'chat', value: 'room not world readable or is invalid', - colorB: colorScheme.lightgray, + color: 'lightgray', }) t.create('invalid token') @@ -226,7 +225,7 @@ t.create('invalid token') .expectJSON({ name: 'chat', value: 'bad auth token', - colorB: colorScheme.lightgray, + color: 'lightgray', }) t.create('unknown request') @@ -263,7 +262,7 @@ t.create('unknown request') .expectJSON({ name: 'chat', value: 'unknown request', - colorB: colorScheme.lightgray, + color: 'lightgray', }) t.create('unknown alias') @@ -291,7 +290,7 @@ t.create('unknown alias') .expectJSON({ name: 'chat', value: 'room not found', - colorB: colorScheme.red, + color: 'red', }) t.create('invalid alias') @@ -299,7 +298,7 @@ t.create('invalid alias') .expectJSON({ name: 'chat', value: 'invalid alias', - colorB: colorScheme.red, + color: 'red', }) t.create('server uses a custom port') @@ -370,7 +369,7 @@ t.create('server uses a custom port') .expectJSON({ name: 'chat', value: '2 users', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('specify the homeserver fqdn') @@ -443,7 +442,7 @@ t.create('specify the homeserver fqdn') .expectJSON({ name: 'chat', value: '2 users', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('test on real matrix room for API compliance') @@ -453,6 +452,6 @@ t.create('test on real matrix room for API compliance') Joi.object().keys({ name: 'chat', value: Joi.string().regex(/^[0-9]+ users$/), - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) ) diff --git a/services/microbadger/microbadger.service.js b/services/microbadger/microbadger.service.js index db6dfbe598ab7..c3cea3e1f8a07 100644 --- a/services/microbadger/microbadger.service.js +++ b/services/microbadger/microbadger.service.js @@ -132,7 +132,7 @@ module.exports = class MicroBadger extends LegacyService { } else if (type === 'layers') { badgeData.text[1] = image.LayerCount } - badgeData.colorscheme = null + badgeData.colorscheme = undefined badgeData.colorB = 'blue' sendBadge(format, badgeData) } catch (e) { diff --git a/services/myget/myget.tester.js b/services/myget/myget.tester.js index 27a2b375607a3..4f314b34d5d3c 100644 --- a/services/myget/myget.tester.js +++ b/services/myget/myget.tester.js @@ -6,7 +6,6 @@ const { isMetric, isVPlusDottedVersionNClausesWithOptionalSuffix, } = require('../test-validators') -const { colorScheme } = require('../test-helpers') const { queryIndex, nuGetV3VersionJsonWithDash, @@ -117,7 +116,7 @@ t.create('version (mocked, yellow badge)') .expectJSON({ name: 'mongodb', value: 'v1.2-beta', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('version (mocked, orange badge)') @@ -137,7 +136,7 @@ t.create('version (mocked, orange badge)') .expectJSON({ name: 'mongodb', value: 'v0.35', - colorB: colorScheme.orange, + color: 'orange', }) t.create('version (mocked, blue badge)') @@ -157,7 +156,7 @@ t.create('version (mocked, blue badge)') .expectJSON({ name: 'mongodb', value: 'v1.2.7', - colorB: colorScheme.blue, + color: 'blue', }) t.create('version (not found)') @@ -208,7 +207,7 @@ t.create('version (pre) (mocked, yellow badge)') .expectJSON({ name: 'mongodb', value: 'v1.2-beta', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('version (pre) (mocked, orange badge)') @@ -228,7 +227,7 @@ t.create('version (pre) (mocked, orange badge)') .expectJSON({ name: 'mongodb', value: 'v0.35', - colorB: colorScheme.orange, + color: 'orange', }) t.create('version (pre) (mocked, blue badge)') @@ -248,7 +247,7 @@ t.create('version (pre) (mocked, blue badge)') .expectJSON({ name: 'mongodb', value: 'v1.2.7', - colorB: colorScheme.blue, + color: 'blue', }) t.create('version (pre) (not found)') diff --git a/services/nexus/nexus.tester.js b/services/nexus/nexus.tester.js index 22611bd11e1a1..8b6fbf8a2cd68 100644 --- a/services/nexus/nexus.tester.js +++ b/services/nexus/nexus.tester.js @@ -2,8 +2,6 @@ const Joi = require('joi') const sinon = require('sinon') - -const { colorScheme } = require('../test-helpers') const { isVPlusDottedVersionNClausesWithOptionalSuffix: isVersion, } = require('../test-validators') @@ -56,7 +54,7 @@ t.create('live: search snapshot version of an inexistent artifact') .expectJSON({ name: 'nexus', value: 'artifact or version not found', - colorB: colorScheme.red, + color: 'red', }) t.create('live: repository version') @@ -106,7 +104,7 @@ t.create('search snapshot version not in latestSnapshot') .expectJSON({ name: 'nexus', value: 'v7.0.1-SNAPSHOT', - colorB: colorScheme.orange, + color: 'orange', }) t.create('search snapshot no snapshot versions') @@ -122,7 +120,7 @@ t.create('search snapshot no snapshot versions') .expectJSON({ name: 'nexus', value: 'no snapshot versions found', - colorB: colorScheme.lightgrey, + color: 'lightgray', }) t.create('search release version') @@ -138,7 +136,7 @@ t.create('search release version') .expectJSON({ name: 'nexus', value: 'v1.0.0', - colorB: colorScheme.blue, + color: 'blue', }) t.create('repository release version') @@ -164,7 +162,7 @@ t.create('repository release version') .expectJSON({ name: 'nexus', value: 'v1.2.3', - colorB: colorScheme.blue, + color: 'blue', }) t.create('repository release version') @@ -189,7 +187,7 @@ t.create('repository release version') .expectJSON({ name: 'nexus', value: 'v1.0.0', - colorB: colorScheme.blue, + color: 'blue', }) t.create('user query params') @@ -216,7 +214,7 @@ t.create('user query params') .expectJSON({ name: 'nexus', value: 'v3.2.1', - colorB: colorScheme.blue, + color: 'blue', }) t.create('auth') @@ -240,5 +238,5 @@ t.create('auth') .expectJSON({ name: 'nexus', value: 'v2.3.4', - colorB: colorScheme.blue, + color: 'blue', }) diff --git a/services/npm/npm-downloads.tester.js b/services/npm/npm-downloads.tester.js index 1b450a351eaa6..ff499a871b812 100644 --- a/services/npm/npm-downloads.tester.js +++ b/services/npm/npm-downloads.tester.js @@ -3,7 +3,6 @@ const Joi = require('joi') const ServiceTester = require('../service-tester') const { isMetric } = require('../test-validators') -const { colorScheme: colorsB } = require('../test-helpers') const t = new ServiceTester({ id: 'NpmDownloads', @@ -18,7 +17,7 @@ t.create('total downloads of left-pad') Joi.object().keys({ name: 'downloads', value: isMetric, - colorB: colorsB.brightgreen, + color: 'brightgreen', }) ) @@ -35,7 +34,7 @@ t.create('total downloads of package with zero downloads') downloads: [{ downloads: 0, day: '2018-01-01' }], }) ) - .expectJSON({ name: 'downloads', value: '0', colorB: colorsB.red }) + .expectJSON({ name: 'downloads', value: '0', color: 'red' }) t.create('exact total downloads value') .get('/dt/exact-value.json') @@ -57,7 +56,7 @@ t.create('total downloads when network is off') .expectJSON({ name: 'downloads', value: 'inaccessible', - colorB: colorsB.lightgray, + color: 'lightgray', }) t.create('total downloads of unknown package') @@ -65,5 +64,5 @@ t.create('total downloads of unknown package') .expectJSON({ name: 'downloads', value: 'package not found or too new', - colorB: colorsB.red, + color: 'red', }) diff --git a/services/npm/npm-license.tester.js b/services/npm/npm-license.tester.js index be4a48ca968d5..e10b75c9fe2a3 100644 --- a/services/npm/npm-license.tester.js +++ b/services/npm/npm-license.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme: colorsB } = require('../test-helpers') const t = (module.exports = require('../create-service-tester')()) @@ -15,19 +14,19 @@ t.create('gets the license of express from a custom registry') t.create('public domain license') .get('/redux-auth.json?style=_shields_test') - .expectJSON({ name: 'license', value: 'WTFPL', colorB: '#7cd958' }) + .expectJSON({ name: 'license', value: 'WTFPL', color: '#7cd958' }) t.create('copyleft license') .get('/trianglify.json?style=_shields_test') - .expectJSON({ name: 'license', value: 'GPL-3.0', colorB: colorsB.orange }) + .expectJSON({ name: 'license', value: 'GPL-3.0', color: 'orange' }) t.create('permissive license') .get('/express.json?style=_shields_test') - .expectJSON({ name: 'license', value: 'MIT', colorB: colorsB.green }) + .expectJSON({ name: 'license', value: 'MIT', color: 'green' }) t.create('permissive license for scoped package') .get('/@cycle%2Fcore.json?style=_shields_test') - .expectJSON({ name: 'license', value: 'MIT', colorB: colorsB.green }) + .expectJSON({ name: 'license', value: 'MIT', color: 'green' }) t.create( 'permissive and copyleft licenses (SPDX license expression syntax version 2.0)' @@ -36,7 +35,7 @@ t.create( .expectJSON({ name: 'license', value: '(MPL-2.0 OR MIT)', - colorB: colorsB.lightgrey, + color: 'lightgrey', }) t.create('license for package without a license property') @@ -49,7 +48,7 @@ t.create('license for package without a license property') maintainers: [], }) ) - .expectJSON({ name: 'license', value: 'missing', colorB: colorsB.red }) + .expectJSON({ name: 'license', value: 'missing', color: 'red' }) t.create('license for package with a license object') .get('/package-license-object.json?style=_shields_test') @@ -65,7 +64,7 @@ t.create('license for package with a license object') maintainers: [], }) ) - .expectJSON({ name: 'license', value: 'MIT', colorB: colorsB.green }) + .expectJSON({ name: 'license', value: 'MIT', color: 'green' }) t.create('license for package with a license array') .get('/package-license-array.json?style=_shields_test') @@ -81,7 +80,7 @@ t.create('license for package with a license array') .expectJSON({ name: 'license', value: 'MPL-2.0, MIT', - colorB: colorsB.green, + color: 'green', }) t.create('license for unknown package') @@ -89,16 +88,7 @@ t.create('license for unknown package') .expectJSON({ name: 'license', value: 'package not found', - colorB: colorsB.red, - }) - -t.create('license when network is off') - .get('/pakage-network-off.json?style=_shields_test') - .networkOff() - .expectJSON({ - name: 'license', - value: 'inaccessible', - colorB: colorsB.lightgrey, + color: 'red', }) // This tests error-handling functionality in NpmBase. diff --git a/services/nuget/nuget.tester.js b/services/nuget/nuget.tester.js index 68ccc450bcfbf..f05f81c81e263 100644 --- a/services/nuget/nuget.tester.js +++ b/services/nuget/nuget.tester.js @@ -7,7 +7,6 @@ const { isVPlusDottedVersionNClauses, isVPlusDottedVersionNClausesWithOptionalSuffix, } = require('../test-validators') -const { colorScheme } = require('../test-helpers') const { queryIndex, nuGetV3VersionJsonWithDash, @@ -78,7 +77,7 @@ t.create('version (mocked, yellow badge)') .expectJSON({ name: 'nuget', value: 'v1.2-beta', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('version (mocked, orange badge)') @@ -98,7 +97,7 @@ t.create('version (mocked, orange badge)') .expectJSON({ name: 'nuget', value: 'v0.35', - colorB: colorScheme.orange, + color: 'orange', }) t.create('version (mocked, blue badge)') @@ -118,7 +117,7 @@ t.create('version (mocked, blue badge)') .expectJSON({ name: 'nuget', value: 'v1.2.7', - colorB: colorScheme.blue, + color: 'blue', }) t.create('version (not found)') @@ -169,7 +168,7 @@ t.create('version (pre) (mocked, yellow badge)') .expectJSON({ name: 'nuget', value: 'v1.2-beta', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('version (pre) (mocked, orange badge)') @@ -189,7 +188,7 @@ t.create('version (pre) (mocked, orange badge)') .expectJSON({ name: 'nuget', value: 'v0.35', - colorB: colorScheme.orange, + color: 'orange', }) t.create('version (pre) (mocked, blue badge)') @@ -209,7 +208,7 @@ t.create('version (pre) (mocked, blue badge)') .expectJSON({ name: 'nuget', value: 'v1.2.7', - colorB: colorScheme.blue, + color: 'blue', }) t.create('version (pre) (not found)') diff --git a/services/opencollective/opencollective-all.tester.js b/services/opencollective/opencollective-all.tester.js index 12d1230155acd..a69d5b348e53f 100644 --- a/services/opencollective/opencollective-all.tester.js +++ b/services/opencollective/opencollective-all.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme } = require('../test-helpers') const { nonNegativeInteger } = require('../validators') const t = (module.exports = require('../create-service-tester')()) @@ -25,7 +24,7 @@ t.create('renders correctly') Joi.object().keys({ name: 'backers and sponsors', value: '35', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) ) t.create('gets amount of backers and sponsors') @@ -48,7 +47,7 @@ t.create('renders not found correctly') Joi.object().keys({ name: 'backers and sponsors', value: 'collective not found', - color: colorScheme.red, + color: 'red', }) ) @@ -58,6 +57,6 @@ t.create('handles not found correctly') Joi.object().keys({ name: 'backers and sponsors', value: 'collective not found', - color: colorScheme.red, + color: 'red', }) ) diff --git a/services/opencollective/opencollective-backers.tester.js b/services/opencollective/opencollective-backers.tester.js index 3addd4c374e2b..24e5be5fce152 100644 --- a/services/opencollective/opencollective-backers.tester.js +++ b/services/opencollective/opencollective-backers.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme } = require('../test-helpers') const { nonNegativeInteger } = require('../validators') const t = (module.exports = require('../create-service-tester')()) @@ -77,9 +76,10 @@ t.create('renders correctly') Joi.object().keys({ name: 'backers', value: '25', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) ) + t.create('gets amount of backers') .get('/shields.json') .expectJSONTypes( @@ -95,6 +95,6 @@ t.create('handles not found correctly') Joi.object().keys({ name: 'backers', value: 'collective not found', - colorB: colorScheme.red, + color: 'red', }) ) diff --git a/services/opencollective/opencollective-by-tier.tester.js b/services/opencollective/opencollective-by-tier.tester.js index dbc42815b14cd..28f962d6fc014 100644 --- a/services/opencollective/opencollective-by-tier.tester.js +++ b/services/opencollective/opencollective-by-tier.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme } = require('../test-helpers') const { nonNegativeInteger } = require('../validators') const t = (module.exports = require('../create-service-tester')()) @@ -65,7 +64,7 @@ t.create('renders correctly') Joi.object().keys({ name: 'monthly backers', value: '8', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) ) @@ -81,7 +80,7 @@ t.create('shows 0 when given a non existent tier') Joi.object().keys({ name: 'new tier', value: '0', - colorB: colorScheme.lightgrey, + color: 'lightgrey', }) ) @@ -100,6 +99,6 @@ t.create('handles not found correctly') Joi.object().keys({ name: 'open collective', value: 'collective not found', - colorB: colorScheme.red, + color: 'red', }) ) diff --git a/services/opencollective/opencollective-sponsors.tester.js b/services/opencollective/opencollective-sponsors.tester.js index 68e86ab416380..5087ad5ceeb9a 100644 --- a/services/opencollective/opencollective-sponsors.tester.js +++ b/services/opencollective/opencollective-sponsors.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme } = require('../test-helpers') const { nonNegativeInteger } = require('../validators') const t = (module.exports = require('../create-service-tester')()) @@ -69,7 +68,7 @@ t.create('renders correctly') Joi.object().keys({ name: 'sponsors', value: '10', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) ) t.create('gets amount of sponsors') @@ -87,6 +86,6 @@ t.create('handles not found correctly') Joi.object().keys({ name: 'sponsors', value: 'collective not found', - colorB: colorScheme.red, + color: 'red', }) ) diff --git a/services/resharper/resharper.tester.js b/services/resharper/resharper.tester.js index e82ea2e256cd4..fcf311d66ef11 100644 --- a/services/resharper/resharper.tester.js +++ b/services/resharper/resharper.tester.js @@ -7,13 +7,11 @@ const { isVPlusDottedVersionNClauses, isVPlusDottedVersionNClausesWithOptionalSuffix, } = require('../test-validators') -const { colorScheme } = require('../test-helpers') const { nuGetV2VersionJsonWithDash, nuGetV2VersionJsonFirstCharZero, nuGetV2VersionJsonFirstCharNotZero, } = require('../nuget-fixtures') -const { invalidJSON } = require('../response-fixtures') const t = new ServiceTester({ id: 'resharper', title: 'ReSharper' }) module.exports = t @@ -33,22 +31,6 @@ t.create('total downloads (not found)') .get('/dt/not-a-real-package.json') .expectJSON({ name: 'downloads', value: 'not found' }) -t.create('total downloads (connection error)') - .get('/dt/ReSharper.Nuke.json') - .networkOff() - .expectJSON({ name: 'downloads', value: 'inaccessible' }) - -t.create('total downloads (unexpected response)') - .get('/dt/ReSharper.Nuke.json') - .intercept(nock => - nock('https://resharper-plugins.jetbrains.com') - .get( - '/api/v2/Packages()?%24filter=Id%20eq%20%27ReSharper.Nuke%27%20and%20IsLatestVersion%20eq%20true' - ) - .reply(invalidJSON) - ) - .expectJSON({ name: 'downloads', value: 'unparseable json response' }) - // version t.create('version (valid)') @@ -72,7 +54,7 @@ t.create('version (mocked, yellow badge)') .expectJSON({ name: 'resharper', value: 'v1.2-beta', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('version (mocked, orange badge)') @@ -87,7 +69,7 @@ t.create('version (mocked, orange badge)') .expectJSON({ name: 'resharper', value: 'v0.35', - colorB: colorScheme.orange, + color: 'orange', }) t.create('version (mocked, blue badge)') @@ -102,29 +84,13 @@ t.create('version (mocked, blue badge)') .expectJSON({ name: 'resharper', value: 'v1.2.7', - colorB: colorScheme.blue, + color: 'blue', }) t.create('version (not found)') .get('/v/not-a-real-package.json') .expectJSON({ name: 'resharper', value: 'not found' }) -t.create('version (connection error)') - .get('/v/ReSharper.Nuke.json') - .networkOff() - .expectJSON({ name: 'resharper', value: 'inaccessible' }) - -t.create('version (unexpected response)') - .get('/v/ReSharper.Nuke.json') - .intercept(nock => - nock('https://resharper-plugins.jetbrains.com') - .get( - '/api/v2/Packages()?%24filter=Id%20eq%20%27ReSharper.Nuke%27%20and%20IsLatestVersion%20eq%20true' - ) - .reply(invalidJSON) - ) - .expectJSON({ name: 'resharper', value: 'unparseable json response' }) - // version (pre) t.create('version (pre) (valid)') @@ -148,7 +114,7 @@ t.create('version (pre) (mocked, yellow badge)') .expectJSON({ name: 'resharper', value: 'v1.2-beta', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('version (pre) (mocked, orange badge)') @@ -163,7 +129,7 @@ t.create('version (pre) (mocked, orange badge)') .expectJSON({ name: 'resharper', value: 'v0.35', - colorB: colorScheme.orange, + color: 'orange', }) t.create('version (pre) (mocked, blue badge)') @@ -178,25 +144,9 @@ t.create('version (pre) (mocked, blue badge)') .expectJSON({ name: 'resharper', value: 'v1.2.7', - colorB: colorScheme.blue, + color: 'blue', }) t.create('version (pre) (not found)') .get('/vpre/not-a-real-package.json') .expectJSON({ name: 'resharper', value: 'not found' }) - -t.create('version (pre) (connection error)') - .get('/vpre/ReSharper.Nuke.json') - .networkOff() - .expectJSON({ name: 'resharper', value: 'inaccessible' }) - -t.create('version (pre) (unexpected response)') - .get('/vpre/ReSharper.Nuke.json') - .intercept(nock => - nock('https://resharper-plugins.jetbrains.com') - .get( - '/api/v2/Packages()?%24filter=Id%20eq%20%27ReSharper.Nuke%27%20and%20IsAbsoluteLatestVersion%20eq%20true' - ) - .reply(invalidJSON) - ) - .expectJSON({ name: 'resharper', value: 'unparseable json response' }) diff --git a/services/scrutinizer/scrutinizer.tester.js b/services/scrutinizer/scrutinizer.tester.js index 21599d9095ca6..eb9aa37ddf922 100644 --- a/services/scrutinizer/scrutinizer.tester.js +++ b/services/scrutinizer/scrutinizer.tester.js @@ -4,7 +4,6 @@ const Joi = require('joi') const ServiceTester = require('../service-tester') const { isIntegerPercentage } = require('../test-validators') const { isBuildStatus } = require('../../lib/build-status') -const { colorScheme } = require('../test-helpers') const t = new ServiceTester({ id: 'scrutinizer', title: 'Scrutinizer' }) module.exports = t @@ -108,5 +107,5 @@ t.create('build - unknown') .expectJSON({ name: 'build', value: 'unknown', - colorB: colorScheme.lightgrey, + color: 'lightgrey', }) diff --git a/services/snyk/snyk-vulnerability-github.tester.js b/services/snyk/snyk-vulnerability-github.tester.js index 17f3250d36cb3..90e6e6092a5d2 100644 --- a/services/snyk/snyk-vulnerability-github.tester.js +++ b/services/snyk/snyk-vulnerability-github.tester.js @@ -2,7 +2,6 @@ const Joi = require('joi') const t = (module.exports = require('../create-service-tester')()) -const { colorScheme } = require('../test-helpers') const { twoVulnerabilitiesSvg, zeroVulnerabilitiesSvg, @@ -45,7 +44,7 @@ t.create('repo has no vulnerabilities') .expectJSON({ name: 'vulnerabilities', value: '0', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('repo has vulnerabilities') @@ -58,7 +57,7 @@ t.create('repo has vulnerabilities') .expectJSON({ name: 'vulnerabilities', value: '2', - colorB: colorScheme.red, + color: 'red', }) t.create('target manifest file has no vulnerabilities') @@ -74,7 +73,7 @@ t.create('target manifest file has no vulnerabilities') .expectJSON({ name: 'vulnerabilities', value: '0', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('target manifest file has vulnerabilities') @@ -90,5 +89,5 @@ t.create('target manifest file has vulnerabilities') .expectJSON({ name: 'vulnerabilities', value: '2', - colorB: colorScheme.red, + color: 'red', }) diff --git a/services/snyk/snyk-vulnerability-npm.tester.js b/services/snyk/snyk-vulnerability-npm.tester.js index 27e05f5a573f1..d6aec83ce6835 100644 --- a/services/snyk/snyk-vulnerability-npm.tester.js +++ b/services/snyk/snyk-vulnerability-npm.tester.js @@ -2,7 +2,6 @@ const Joi = require('joi') const t = (module.exports = require('../create-service-tester')()) -const { colorScheme } = require('../test-helpers') const { twoVulnerabilitiesSvg, zeroVulnerabilitiesSvg, @@ -41,7 +40,7 @@ t.create('live: valid package specific version') .expectJSON({ name: 'vulnerabilities', value: '1', - colorB: colorScheme.red, + color: 'red', }) t.create('live: non existent package version') @@ -62,7 +61,7 @@ t.create('package has no vulnerabilities') .expectJSON({ name: 'vulnerabilities', value: '0', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('package has vulnerabilities') @@ -75,7 +74,7 @@ t.create('package has vulnerabilities') .expectJSON({ name: 'vulnerabilities', value: '2', - colorB: colorScheme.red, + color: 'red', }) t.create('package not found') @@ -88,5 +87,5 @@ t.create('package not found') .expectJSON({ name: 'vulnerabilities', value: 'npm package is invalid or does not exist', - colorB: colorScheme.red, + color: 'red', }) diff --git a/services/static-badge/static-badge.tester.js b/services/static-badge/static-badge.tester.js index fc2c2ac506544..f61a586237a78 100644 --- a/services/static-badge/static-badge.tester.js +++ b/services/static-badge/static-badge.tester.js @@ -4,47 +4,47 @@ const t = (module.exports = require('../create-service-tester')()) t.create('Shields colorscheme color') .get('/badge/label-message-blue.json?style=_shields_test') - .expectJSON({ name: 'label', value: 'message', colorB: '#007ec6' }) + .expectJSON({ name: 'label', value: 'message', color: 'blue' }) t.create('CSS named color') .get('/badge/label-message-whitesmoke.json?style=_shields_test') - .expectJSON({ name: 'label', value: 'message', colorB: 'whitesmoke' }) + .expectJSON({ name: 'label', value: 'message', color: 'whitesmoke' }) t.create('RGB color') .get('/badge/label-message-rgb(123,123,123).json?style=_shields_test') - .expectJSON({ name: 'label', value: 'message', colorB: 'rgb(123,123,123)' }) + .expectJSON({ name: 'label', value: 'message', color: 'rgb(123,123,123)' }) t.create('All one color') .get('/badge/all%20one%20color-red.json?style=_shields_test') - .expectJSON({ name: '', value: 'all one color', colorB: '#e05d44' }) + .expectJSON({ name: '', value: 'all one color', color: 'red' }) t.create('Not a valid color') .get('/badge/label-message-notacolor.json?style=_shields_test') - .expectJSON({ name: 'label', value: 'message', colorB: '#e05d44' }) + .expectJSON({ name: 'label', value: 'message' }) t.create('Missing message') .get('/badge/label--blue.json?style=_shields_test') - .expectJSON({ name: 'label', value: '', colorB: '#007ec6' }) + .expectJSON({ name: 'label', value: '', color: 'blue' }) t.create('Missing label') .get('/badge/-message-blue.json?style=_shields_test') - .expectJSON({ name: '', value: 'message', colorB: '#007ec6' }) + .expectJSON({ name: '', value: 'message', color: 'blue' }) t.create('Case is preserved') .get('/badge/LiCeNsE-mIt-blue.json?style=_shields_test') - .expectJSON({ name: 'LiCeNsE', value: 'mIt', colorB: '#007ec6' }) + .expectJSON({ name: 'LiCeNsE', value: 'mIt', color: 'blue' }) t.create('"Shields-encoded" dash') .get('/badge/best--license-Apache--2.0-blue.json?style=_shields_test') - .expectJSON({ name: 'best-license', value: 'Apache-2.0', colorB: '#007ec6' }) + .expectJSON({ name: 'best-license', value: 'Apache-2.0', color: 'blue' }) t.create('Override colorB') .get('/badge/label-message-blue.json?style=_shields_test&colorB=yellow') - .expectJSON({ name: 'label', value: 'message', colorB: '#dfb317' }) + .expectJSON({ name: 'label', value: 'message', color: 'yellow' }) t.create('Override label') .get('/badge/label-message-blue.json?style=_shields_test&label=mylabel') - .expectJSON({ name: 'mylabel', value: 'message', colorB: '#007ec6' }) + .expectJSON({ name: 'mylabel', value: 'message', color: 'blue' }) t.create('Old static badge') .get('/foo/bar.png?color=blue', { followRedirect: false }) diff --git a/services/swagger/swagger.tester.js b/services/swagger/swagger.tester.js index 6355217985f1b..e2c500d273f30 100644 --- a/services/swagger/swagger.tester.js +++ b/services/swagger/swagger.tester.js @@ -1,7 +1,5 @@ 'use strict' -const { colorScheme } = require('../test-helpers') - const getURL = '/https/example.com/example.json.json?style=_shields_test' const apiURL = 'http://online.swagger.io' const apiGetURL = '/validator/debug' @@ -20,7 +18,7 @@ t.create('Valid (mocked)') .expectJSON({ name: 'swagger', value: 'valid', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('Invalid (mocked)') @@ -41,7 +39,5 @@ t.create('Invalid (mocked)') .expectJSON({ name: 'swagger', value: 'invalid', - colorB: colorScheme.red, + color: 'red', }) - -module.exports = t diff --git a/services/symfony/symfony-insight.tester.js b/services/symfony/symfony-insight.tester.js index fb63e087a9fa6..0e1473ba46845 100644 --- a/services/symfony/symfony-insight.tester.js +++ b/services/symfony/symfony-insight.tester.js @@ -1,7 +1,6 @@ 'use strict' const Joi = require('joi') -const { colorScheme } = require('../test-helpers') const t = (module.exports = require('../create-service-tester')()) const { withRegex } = require('../test-validators') @@ -124,7 +123,7 @@ create('pending project grade') .expectJSON({ name: 'grade', value: 'pending', - colorB: colorScheme.lightgrey, + color: 'lightgrey', }) create('platinum grade') @@ -137,7 +136,7 @@ create('platinum grade') .expectJSON({ name: 'grade', value: 'platinum', - colorB: '#E5E4E2', + color: '#e5e4e2', }) create('gold grade') @@ -150,7 +149,7 @@ create('gold grade') .expectJSON({ name: 'grade', value: 'gold', - colorB: '#EBC760', + color: '#ebc760', }) create('silver grade') @@ -163,7 +162,7 @@ create('silver grade') .expectJSON({ name: 'grade', value: 'silver', - colorB: '#C0C0C0', + color: '#c0c0c0', }) create('bronze grade') @@ -176,7 +175,7 @@ create('bronze grade') .expectJSON({ name: 'grade', value: 'bronze', - colorB: '#C88F6A', + color: '#c88f6a', }) create('no medal grade') @@ -189,7 +188,7 @@ create('no medal grade') .expectJSON({ name: 'grade', value: 'no medal', - colorB: colorScheme.red, + color: 'red', }) create('zero violations') @@ -202,7 +201,7 @@ create('zero violations') .expectJSON({ name: 'violations', value: '0', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) create('critical violations') @@ -215,7 +214,7 @@ create('critical violations') .expectJSON({ name: 'violations', value: '1 critical', - colorB: colorScheme.red, + color: 'red', }) create('major violations') @@ -228,7 +227,7 @@ create('major violations') .expectJSON({ name: 'violations', value: '1 major', - colorB: colorScheme.orange, + color: 'orange', }) create('minor violations') @@ -245,7 +244,7 @@ create('minor violations') .expectJSON({ name: 'violations', value: '1 minor', - colorB: colorScheme.yellow, + color: 'yellow', }) create('info violations') @@ -262,7 +261,7 @@ create('info violations') .expectJSON({ name: 'violations', value: '1 info', - colorB: colorScheme.yellowgreen, + color: 'yellowgreen', }) create('multiple violations grade') @@ -279,7 +278,7 @@ create('multiple violations grade') .expectJSON({ name: 'violations', value: '1 critical, 1 info', - colorB: colorScheme.red, + color: 'red', }) create('auth missing', { withMockCreds: false }) @@ -301,7 +300,7 @@ create('legacy path: pending project grade') .expectJSON({ name: 'grade', value: 'pending', - colorB: colorScheme.lightgrey, + color: 'lightgrey', }) create('legacy path: platinum grade') @@ -314,5 +313,5 @@ create('legacy path: platinum grade') .expectJSON({ name: 'grade', value: 'platinum', - colorB: '#E5E4E2', + color: '#e5e4e2', }) diff --git a/services/teamcity/teamcity-build.tester.js b/services/teamcity/teamcity-build.tester.js index 17bc2bb2ff02c..29736e6a64ccd 100644 --- a/services/teamcity/teamcity-build.tester.js +++ b/services/teamcity/teamcity-build.tester.js @@ -1,8 +1,6 @@ 'use strict' const Joi = require('joi') - -const { colorScheme } = require('../test-helpers') const { withRegex } = require('../test-validators') const { mockTeamCityCreds, @@ -10,11 +8,12 @@ const { user, restore, } = require('./teamcity-test-helpers') -const t = (module.exports = require('../create-service-tester')()) const buildStatusValues = Joi.equal('passing', 'failure', 'error').required() const buildStatusTextRegex = /^success|failure|error|tests( failed: \d+( \(\d+ new\))?)?(,)?( passed: \d+)?(,)?( ignored: \d+)?(,)?( muted: \d+)?$/ +const t = (module.exports = require('../create-service-tester')()) + t.create('live: codebetter unknown build') .get('/codebetter/btabc.json') .expectJSON({ name: 'build', value: 'build not found' }) @@ -60,7 +59,7 @@ t.create('codebetter success build') .expectJSON({ name: 'build', value: 'passing', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('codebetter failure build') @@ -77,7 +76,7 @@ t.create('codebetter failure build') .expectJSON({ name: 'build', value: 'failure', - colorB: colorScheme.red, + color: 'red', }) t.create('simple build status with passed build') @@ -94,7 +93,7 @@ t.create('simple build status with passed build') .expectJSON({ name: 'build', value: 'passing', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('simple build status with failed build') @@ -111,7 +110,7 @@ t.create('simple build status with failed build') .expectJSON({ name: 'build', value: 'failure', - colorB: colorScheme.red, + color: 'red', }) t.create('full build status with passed build') @@ -128,7 +127,7 @@ t.create('full build status with passed build') .expectJSON({ name: 'build', value: 'passing', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('full build status with failed build') @@ -147,7 +146,7 @@ t.create('full build status with failed build') .expectJSON({ name: 'build', value: 'tests failed: 10 (2 new), passed: 99', - colorB: colorScheme.red, + color: 'red', }) t.create('with auth') @@ -173,5 +172,5 @@ t.create('with auth') .expectJSON({ name: 'build', value: 'tests failed: 1 (1 new), passed: 50246, ignored: 1, muted: 12', - colorB: colorScheme.red, + color: 'red', }) diff --git a/services/teamcity/teamcity-coverage.tester.js b/services/teamcity/teamcity-coverage.tester.js index b780bb1ec7e58..18354e83a3157 100644 --- a/services/teamcity/teamcity-coverage.tester.js +++ b/services/teamcity/teamcity-coverage.tester.js @@ -1,8 +1,6 @@ 'use strict' const Joi = require('joi') - -const { colorScheme } = require('../test-helpers') const { isIntegerPercentage } = require('../test-validators') const { mockTeamCityCreds, @@ -10,6 +8,7 @@ const { user, restore, } = require('./teamcity-test-helpers') + const t = (module.exports = require('../create-service-tester')()) t.create('live: valid buildId') @@ -80,7 +79,7 @@ t.create('zero lines covered') .expectJSON({ name: 'coverage', value: '0%', - colorB: colorScheme.red, + color: 'red', }) t.create('with auth, lines covered') @@ -113,5 +112,5 @@ t.create('with auth, lines covered') .expectJSON({ name: 'coverage', value: '82%', - colorB: colorScheme.yellowgreen, + color: 'yellowgreen', }) diff --git a/services/test-helpers.js b/services/test-helpers.js deleted file mode 100644 index f0661368e1cb0..0000000000000 --- a/services/test-helpers.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' -const colorscheme = require('../gh-badges/lib/colorscheme.json') -const mapValues = require('lodash.mapvalues') - -module.exports = { - colorScheme: mapValues(colorscheme, 'colorB'), -} diff --git a/services/transform-example.js b/services/transform-example.js index d1c60298a166a..a3cbf8fc31521 100644 --- a/services/transform-example.js +++ b/services/transform-example.js @@ -106,12 +106,11 @@ function transformExample(inExample, index, ServiceClass) { let preview if (staticPreview) { - const badgeData = ServiceClass._makeBadgeData({}, staticPreview) - preview = { - label: badgeData.text[0], - message: `${badgeData.text[1]}`, - color: badgeData.colorscheme || badgeData.colorB, - } + const { + text: [label, message], + color, + } = ServiceClass._makeBadgeData({}, staticPreview) + preview = { label, message: `${message}`, color } } else { preview = { path: ServiceClass._makeFullUrl(previewUrl), diff --git a/services/twitter/twitter.service.js b/services/twitter/twitter.service.js index 70fba968115d5..0ddcfe54f6bb0 100644 --- a/services/twitter/twitter.service.js +++ b/services/twitter/twitter.service.js @@ -53,7 +53,7 @@ class TwitterUrl extends LegacyService { ] } badgeData.text[1] = '' - badgeData.colorscheme = null + badgeData.colorscheme = undefined badgeData.colorB = data.colorB || '#55ACEE' sendBadge(format, badgeData) }) @@ -99,7 +99,7 @@ class TwitterFollow extends LegacyService { } const badgeData = getBadgeData(`follow @${user}`, data) - badgeData.colorscheme = null + badgeData.colorscheme = undefined badgeData.colorB = '#55ACEE' if (badgeData.template === 'social') { badgeData.logo = getLogo('twitter', data) diff --git a/services/visual-studio-marketplace/visual-studio-marketplace-downloads.tester.js b/services/visual-studio-marketplace/visual-studio-marketplace-downloads.tester.js index f6ddf3c0e2c6d..b2f5590a47f6b 100644 --- a/services/visual-studio-marketplace/visual-studio-marketplace-downloads.tester.js +++ b/services/visual-studio-marketplace/visual-studio-marketplace-downloads.tester.js @@ -3,7 +3,6 @@ const Joi = require('joi') const t = (module.exports = require('../create-service-tester')()) const { isMetric } = require('../test-validators') -const { colorScheme } = require('../test-helpers') const mockResponse = { results: [ @@ -79,7 +78,7 @@ t.create('installs') .expectJSON({ name: 'installs', value: '3', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('zero installs') @@ -109,7 +108,7 @@ t.create('zero installs') .expectJSON({ name: 'installs', value: '0', - colorB: colorScheme.red, + color: 'red', }) t.create('downloads') @@ -124,7 +123,7 @@ t.create('downloads') .expectJSON({ name: 'downloads', value: '10', - colorB: colorScheme.yellowgreen, + color: 'yellowgreen', }) t.create('live: installs (legacy)') diff --git a/services/visual-studio-marketplace/visual-studio-marketplace-rating.tester.js b/services/visual-studio-marketplace/visual-studio-marketplace-rating.tester.js index a12b0e2d2996c..4e7f87d8fe60f 100644 --- a/services/visual-studio-marketplace/visual-studio-marketplace-rating.tester.js +++ b/services/visual-studio-marketplace/visual-studio-marketplace-rating.tester.js @@ -3,7 +3,6 @@ const Joi = require('joi') const t = (module.exports = require('../create-service-tester')()) const { withRegex, isStarRating } = require('../test-validators') -const { colorScheme } = require('../test-helpers') const isVscodeRating = withRegex(/[0-5].[0-9]{2}\/5?\s*\([0-9]*\)$/) @@ -61,7 +60,7 @@ t.create('rating') .expectJSON({ name: 'rating', value: '2.5/5 (10)', - colorB: colorScheme.yellowgreen, + color: 'yellowgreen', }) t.create('zero rating') @@ -91,7 +90,7 @@ t.create('zero rating') .expectJSON({ name: 'rating', value: '0/5 (0)', - colorB: colorScheme.red, + color: 'red', }) t.create('stars') @@ -130,7 +129,7 @@ t.create('stars') .expectJSON({ name: 'rating', value: '★★★★¾', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('live: rating (legacy)') diff --git a/services/visual-studio-marketplace/visual-studio-marketplace-version.tester.js b/services/visual-studio-marketplace/visual-studio-marketplace-version.tester.js index 9affff084d47f..698bab5957b25 100644 --- a/services/visual-studio-marketplace/visual-studio-marketplace-version.tester.js +++ b/services/visual-studio-marketplace/visual-studio-marketplace-version.tester.js @@ -3,7 +3,6 @@ const Joi = require('joi') const t = (module.exports = require('../create-service-tester')()) const { withRegex } = require('../test-validators') -const { colorScheme } = require('../test-helpers') const isMarketplaceVersion = withRegex(/^v(\d+\.\d+\.\d+)(\.\d+)?$/) @@ -43,7 +42,7 @@ t.create('version') .expectJSON({ name: 'version', value: 'v1.0.0', - colorB: colorScheme.blue, + color: 'blue', }) t.create('pre-release version') @@ -73,7 +72,7 @@ t.create('pre-release version') .expectJSON({ name: 'version', value: 'v0.3.8', - colorB: colorScheme.orange, + color: 'orange', }) t.create('live: version (legacy)') diff --git a/services/waffle/waffle.service.js b/services/waffle/waffle.service.js index 4cf2e2270c8b0..24de8e0018317 100644 --- a/services/waffle/waffle.service.js +++ b/services/waffle/waffle.service.js @@ -4,7 +4,6 @@ const LegacyService = require('../legacy-service') const { makeBadgeData: getBadgeData, makeLabel: getLabel, - makeColorB, } = require('../../lib/badge-data') const { checkErrorResponse } = require('../../lib/error-helper') @@ -80,8 +79,8 @@ module.exports = class Waffle extends LegacyService { } badgeData.text[0] = getLabel(ghLabel, data) badgeData.text[1] = `${count}` - badgeData.colorscheme = null - badgeData.colorB = makeColorB(color, data) + badgeData.colorscheme = undefined + badgeData.colorB = data.colorB || color sendBadge(format, badgeData) } catch (e) { badgeData.text[1] = 'invalid' diff --git a/services/waffle/waffle.tester.js b/services/waffle/waffle.tester.js index 28441870f9777..a5e1a21b69e02 100644 --- a/services/waffle/waffle.tester.js +++ b/services/waffle/waffle.tester.js @@ -41,7 +41,7 @@ t.create( .expectJSON({ name: 'bug', value: '5', - colorB: '#fbca04', + color: '#fbca04', }) t.create('label should be `Mybug` & value should be formatted. e.g: Mybug|25') @@ -69,7 +69,7 @@ t.create('label (label not found)') .expectJSON({ name: 'not-a-real-label', value: '0', - colorB: '#78bdf2', + color: '#78bdf2', }) t.create('label (empty response)') diff --git a/services/website/website.service.js b/services/website/website.service.js index 142be209cc8a9..b6254b994dff0 100644 --- a/services/website/website.service.js +++ b/services/website/website.service.js @@ -1,10 +1,7 @@ 'use strict' const LegacyService = require('../legacy-service') -const { - makeBadgeData: getBadgeData, - setBadgeColor, -} = require('../../lib/badge-data') +const { makeBadgeData: getBadgeData } = require('../../lib/badge-data') const { escapeFormatSlashes } = require('../../lib/path-helpers') const documentation = ` @@ -127,11 +124,11 @@ module.exports = class Website extends LegacyService { // We consider all HTTP status codes below 310 as success. if (err != null || res.statusCode >= 310) { badgeData.text[1] = offlineMessage - setBadgeColor(badgeData, offlineColor) + badgeData.colorB = offlineColor sendBadge(format, badgeData) } else { badgeData.text[1] = onlineMessage - setBadgeColor(badgeData, onlineColor) + badgeData.colorB = onlineColor sendBadge(format, badgeData) } }) diff --git a/services/website/website.tester.js b/services/website/website.tester.js index a37673816ce47..a2e4b8044876f 100644 --- a/services/website/website.tester.js +++ b/services/website/website.tester.js @@ -1,44 +1,40 @@ 'use strict' -const ServiceTester = require('../service-tester') -const { colorScheme: colorsB } = require('../test-helpers') - -const t = new ServiceTester({ id: 'website', title: 'website' }) -module.exports = t +const t = (module.exports = require('../create-service-tester')()) t.create('status of http://shields.io') - .get('/http/shields.io.json?style=_shields_test') - .expectJSON({ name: 'website', value: 'online', colorB: colorsB.brightgreen }) + .get('/website/http/shields.io.json?style=_shields_test') + .expectJSON({ name: 'website', value: 'online', color: 'brightgreen' }) t.create('status of https://shields.io') - .get('/https/shields.io.json?style=_shields_test') - .expectJSON({ name: 'website', value: 'online', colorB: colorsB.brightgreen }) + .get('/website/https/shields.io.json?style=_shields_test') + .expectJSON({ name: 'website', value: 'online', color: 'brightgreen' }) t.create('status of nonexistent domain') - .get('/https/shields-io.io.json?style=_shields_test') - .expectJSON({ name: 'website', value: 'offline', colorB: colorsB.red }) + .get('/website/https/shields-io.io.json?style=_shields_test') + .expectJSON({ name: 'website', value: 'offline', color: 'red' }) t.create('status when network is off') - .get('/http/shields.io.json?style=_shields_test') + .get('/website/http/shields.io.json?style=_shields_test') .networkOff() - .expectJSON({ name: 'website', value: 'offline', colorB: colorsB.red }) + .expectJSON({ name: 'website', value: 'offline', color: 'red' }) t.create('custom online label, online message and online color') .get( - '-up-down-green-grey/http/online.com.json?style=_shields_test&label=homepage' + '/website-up-down-green-grey/http/online.com.json?style=_shields_test&label=homepage' ) .intercept(nock => nock('http://online.com') .head('/') .reply(200) ) - .expectJSON({ name: 'homepage', value: 'up', colorB: colorsB.green }) + .expectJSON({ name: 'homepage', value: 'up', color: 'green' }) t.create('custom offline message and offline color') - .get('-up-down-green-grey/http/offline.com.json?style=_shields_test') + .get('/website-up-down-green-grey/http/offline.com.json?style=_shields_test') .intercept(nock => nock('http://offline.com') .head('/') .reply(500) ) - .expectJSON({ name: 'website', value: 'down', colorB: colorsB.grey }) + .expectJSON({ name: 'website', value: 'down', color: 'grey' }) diff --git a/services/wercker/wercker.tester.js b/services/wercker/wercker.tester.js index 5ea546a45c0c1..fe2bea075ca8a 100644 --- a/services/wercker/wercker.tester.js +++ b/services/wercker/wercker.tester.js @@ -2,7 +2,6 @@ const Joi = require('joi') const { isBuildStatus } = require('../../lib/build-status') -const { colorScheme } = require('../test-helpers') const t = (module.exports = require('../create-service-tester')()) @@ -32,7 +31,7 @@ t.create('Build passed (mocked)') .expectJSON({ name: 'build', value: 'passing', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('Build failed (mocked)') @@ -42,7 +41,7 @@ t.create('Build failed (mocked)') .get('/wercker/go-wercker-api/builds?limit=1') .reply(200, [{ status: 'finished', result: 'failed' }]) ) - .expectJSON({ name: 'build', value: 'failing', colorB: colorScheme.red }) + .expectJSON({ name: 'build', value: 'failing', color: 'red' }) t.create('CI status by ID') .get('/ci/559e33c8e982fc615500b357.json') diff --git a/services/wheelmap/wheelmap.tester.js b/services/wheelmap/wheelmap.tester.js index b60f0e1939c17..dac3ee0f835df 100644 --- a/services/wheelmap/wheelmap.tester.js +++ b/services/wheelmap/wheelmap.tester.js @@ -1,6 +1,5 @@ 'use strict' -const { colorScheme } = require('../test-helpers') const serverSecrets = require('../../lib/server-secrets') const t = (module.exports = require('../create-service-tester')()) @@ -33,7 +32,7 @@ t.create('node with accessibility') .expectJSON({ name: 'accessibility', value: 'yes', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('node with limited accessibility') @@ -55,7 +54,7 @@ t.create('node with limited accessibility') .expectJSON({ name: 'accessibility', value: 'limited', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('node without accessibility') @@ -77,7 +76,7 @@ t.create('node without accessibility') .expectJSON({ name: 'accessibility', value: 'no', - colorB: colorScheme.red, + color: 'red', }) t.create('node not found') diff --git a/services/wordpress/wordpress-platform.tester.js b/services/wordpress/wordpress-platform.tester.js index a37ce9fa151b1..904f61dd61830 100644 --- a/services/wordpress/wordpress-platform.tester.js +++ b/services/wordpress/wordpress-platform.tester.js @@ -4,7 +4,6 @@ const Joi = require('joi') const ServiceTester = require('../service-tester') const { isVPlusDottedVersionAtLeastOne } = require('../test-validators') -const { colorScheme } = require('../test-helpers') const t = new ServiceTester({ id: 'wordpress', @@ -78,7 +77,7 @@ t.create('Plugin Tested WP Version - current (mocked)') .expectJSON({ name: 'wordpress', value: 'v4.9.8 tested', - colorB: colorScheme.brightgreen, + color: 'brightgreen', }) t.create('Plugin Tested WP Version - old (mocked)') @@ -102,7 +101,7 @@ t.create('Plugin Tested WP Version - old (mocked)') .expectJSON({ name: 'wordpress', value: 'v4.9.6 tested', - colorB: colorScheme.orange, + color: 'orange', }) t.create('Plugin Tested WP Version - non-exsistant or unsupported (mocked)') @@ -126,7 +125,7 @@ t.create('Plugin Tested WP Version - non-exsistant or unsupported (mocked)') .expectJSON({ name: 'wordpress', value: 'v4.0.0 tested', - colorB: colorScheme.yellow, + color: 'yellow', }) t.create('Plugin Required WP Version | Not Found')