Refactor badge color functions (#2742)

- Replace the idea of color schemes with the idea of named colors (since none of our colorschemes have used `colorA`)
- Pass through the normalized color to `_shields_test` to harmonize with BaseService and simplify testing
    - Update service tests
- Move responsibility for color generation into the npm package
- Remove several color helper functions and their tests
- Update gh-badge public API to accept `color` and `labelColor`

This is a precursor to refactoring some of the logo code for #2473.
This commit is contained in:
Paul Melnikow
2019-01-15 16:43:33 -05:00
committed by GitHub
parent cab689706f
commit 4597d77015
81 changed files with 492 additions and 669 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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',
})