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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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',
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user