Files
shields/service-tests/chrome-web-store.js
Paul Melnikow c3636e7549 Clean up service tests (#1127)
- Consolidate regexes
- Use slimmer syntax where possible
- Fix bug caught by failing amo tests
2017-10-09 14:41:18 -04:00

56 lines
1.6 KiB
JavaScript

'use strict';
const Joi = require('joi');
const ServiceTester = require('./runner/service-tester');
const {
isVPlusDottedVersionAtLeastOne,
isStarRating,
isMetric
} = require('./helpers/validators');
const t = new ServiceTester({ id: 'chrome-web-store', title: 'Chrome Web Store' });
module.exports = t;
t.create('Downloads (now users)')
.get('/d/alhjnofcnnpeaphgeakdhkebafjcpeae.json')
.expectJSONTypes(Joi.object().keys({ name: 'users', value: isMetric }));
t.create('Users')
.get('/users/alhjnofcnnpeaphgeakdhkebafjcpeae.json')
.expectJSONTypes(Joi.object().keys({ name: 'users', value: isMetric }));
t.create('Version')
.get('/v/alhjnofcnnpeaphgeakdhkebafjcpeae.json')
.expectJSONTypes(Joi.object().keys({
name: 'chrome web store',
value: isVPlusDottedVersionAtLeastOne
}));
t.create('Version - Custom label')
.get('/v/alhjnofcnnpeaphgeakdhkebafjcpeae.json?label=IndieGala Helper')
.expectJSONTypes(Joi.object().keys({
name: 'IndieGala Helper',
value: isVPlusDottedVersionAtLeastOne
}));
t.create('Rating')
.get('/rating/alhjnofcnnpeaphgeakdhkebafjcpeae.json')
.expectJSONTypes(Joi.object().keys({
name: 'rating',
value: Joi.string().regex(/^\d\.?\d+?\/5$/)
}));
t.create('Stars')
.get('/stars/alhjnofcnnpeaphgeakdhkebafjcpeae.json')
.expectJSONTypes(Joi.object().keys({ name: 'rating', value: isStarRating }));
t.create('Invalid addon')
.get('/d/invalid-name-of-addon.json')
.expectJSON({ name: 'chrome web store', value: 'invalid' });
t.create('No connection')
.get('/v/alhjnofcnnpeaphgeakdhkebafjcpeae.json')
.networkOff()
.expectJSON({ name: 'chrome web store', value: 'inaccessible' });