75 lines
2.5 KiB
JavaScript
75 lines
2.5 KiB
JavaScript
'use strict';
|
|
|
|
const Joi = require('joi');
|
|
const ServiceTester = require('./runner/service-tester');
|
|
|
|
const t = new ServiceTester({ id: 'github', title: 'Github' });
|
|
module.exports = t;
|
|
|
|
t.create('File size')
|
|
.get('/size/webcaetano/craft/build/phaser-craft.min.js.json')
|
|
.expectJSONTypes(Joi.object().keys({
|
|
name: Joi.equal('size'),
|
|
value: Joi.string().regex(/^[0-9]*[.]?[0-9]+\s(B|kB|MB|GB|TB|PB|EB|ZB|YB)$/),
|
|
}));
|
|
|
|
t.create('File size 404')
|
|
.get('/size/webcaetano/craft/build/does-not-exist.min.js.json')
|
|
.expectJSONTypes(Joi.object().keys({
|
|
name: Joi.equal('size'),
|
|
value: Joi.string().regex(/^repo or file not found$/),
|
|
}));
|
|
|
|
t.create('File size for "not a regular file"')
|
|
.get('/size/webcaetano/craft/build.json')
|
|
.expectJSONTypes(Joi.object().keys({
|
|
name: Joi.equal('size'),
|
|
value: Joi.string().regex(/^not a regular file$/),
|
|
}));
|
|
|
|
t.create('downloads for release without slash')
|
|
.get('/downloads/atom/atom/v0.190.0/total.json')
|
|
.expectJSONTypes(Joi.object().keys({
|
|
name: Joi.equal('downloads'),
|
|
value: Joi.string().regex(/^[0-9]+[kMGTPEZY]? v0\.190\.0$/)
|
|
}));
|
|
|
|
t.create('downloads for specific asset without slash')
|
|
.get('/downloads/atom/atom/v0.190.0/atom-amd64.deb.json')
|
|
.expectJSONTypes(Joi.object().keys({
|
|
name: Joi.equal('downloads'),
|
|
value: Joi.string().regex(/^[0-9]+[kMGTPEZY]? v0\.190\.0 \[atom-amd64\.deb\]$/)
|
|
}));
|
|
|
|
t.create('downloads for release with slash')
|
|
.get('/downloads/NHellFire/dban/stable/v2.2.8/total.json')
|
|
.expectJSONTypes(Joi.object().keys({
|
|
name: Joi.equal('downloads'),
|
|
value: Joi.string().regex(/^[0-9]+[kMGTPEZY]? stable\/v2\.2\.8$/)
|
|
}));
|
|
|
|
t.create('downloads for specific asset with slash')
|
|
.get('/downloads/NHellFire/dban/stable/v2.2.8/dban-2.2.8_i586.iso.json')
|
|
.expectJSONTypes(Joi.object().keys({
|
|
name: Joi.equal('downloads'),
|
|
value: Joi.string().regex(/^[0-9]+[kMGTPEZY]? stable\/v2\.2\.8 \[dban-2\.2\.8_i586\.iso\]$/)
|
|
}));
|
|
|
|
t.create('downloads for unknown release')
|
|
.get('/downloads/atom/atom/does-not-exist/total.json')
|
|
.expectJSON({ name: 'downloads', value: 'none' });
|
|
|
|
t.create('hit counter')
|
|
.get('/search/torvalds/linux/goto.json')
|
|
.expectJSONTypes(Joi.object().keys({
|
|
name: Joi.equal('goto counter'),
|
|
value: Joi.string().regex(/^[0-9]*(k|M|G|T|P|E|Z|Y)$/),
|
|
}));
|
|
|
|
t.create('hit counter for nonexistent repo')
|
|
.get('/search/torvalds/not-linux/goto.json')
|
|
.expectJSONTypes(Joi.object().keys({
|
|
name: Joi.equal('goto counter'),
|
|
value: Joi.string().regex(/^repo not found$/),
|
|
}));
|