* Add Keybase PGP badge * Return 'not found' if the key is not present * Change the default colour * Add more constraints to the schema * Render 64-bit fingerprints * Add example * Add a 'hex()' constraint to the fingerprint * Improve error handling * Add class 'KeybaseProfile' * Add unit tests for Keybase PGP * Add Keybase BTC * Add unit tests for Keybase BTC * Add Keybase ZEC * Add unit tests for Keybase ZEC * Add Keybase XLM * Add unit tests for Keybase XLM * Validate the BTC address using a regex Regex taken from https://mokagio.github.io/tech-journal/2014/11/21/regex-bitcoin.html. * Exclude 'not found' from addresses' value in unit tests * Remove useless keywords * Add the link to the Keybase API documentation * Move the colour into 'defaultBadgeData' * Remove the HTTP method 'GET' is already the default one. * Improve the error handling for Keybase BTC * Add more constraints to the Keybase BTC schema * Update one unit test for Keybase BTC * Fix the error handling for Keybase BTC * Add more unit tests for Keybase BTC * Improve the error handling for Keybase ZEC * Improve the error handling for Keybase PGP * Improve the error handling for Keybase XLM * Display a real username value in the examples * Include the status code in the schemas * Move the category to the base class The same category is used by all badges. * Add function 'transform' to the base class The function 'transform' is used to encapsulate the error handling logic as it is the same in each service.
43 lines
835 B
JavaScript
43 lines
835 B
JavaScript
'use strict'
|
|
|
|
const Joi = require('joi')
|
|
const { withRegex } = require('../test-validators')
|
|
|
|
const t = (module.exports = require('../tester').createServiceTester())
|
|
|
|
t.create('existing bitcoin address')
|
|
.get('/skyplabs.json')
|
|
.expectJSONTypes(
|
|
Joi.object({
|
|
name: 'btc',
|
|
value: withRegex(/^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$/),
|
|
})
|
|
)
|
|
|
|
t.create('unknown username')
|
|
.get('/skyplabsssssss.json')
|
|
.expectJSONTypes(
|
|
Joi.object({
|
|
name: 'btc',
|
|
value: 'profile not found',
|
|
})
|
|
)
|
|
|
|
t.create('invalid username')
|
|
.get('/s.json')
|
|
.expectJSONTypes(
|
|
Joi.object({
|
|
name: 'btc',
|
|
value: 'invalid username',
|
|
})
|
|
)
|
|
|
|
t.create('missing bitcoin address')
|
|
.get('/test.json')
|
|
.expectJSONTypes(
|
|
Joi.object({
|
|
name: 'btc',
|
|
value: 'no bitcoin addresses found',
|
|
})
|
|
)
|