Files
shields/services/sourceforge/sourceforge.tester.js
Paul Melnikow 226fa67a02 Create shortcut for BaseService-related imports (#2809)
Continue to implement #2698:

- Add `core/base-service/index.js` (but hold off on moving the things it imports)
- Add shortcuts in `services/index.js` for Base*Service, errors, and deprecatedService. This file will be streamlined later to avoid cluttering it with rarely used bits.
- Apply consistent ordering of imports and use of `module.exports` in testers.
- Remove some renaming of imports.
- Remove obsolete tests here and there.
2019-01-21 15:41:24 -05:00

60 lines
1.2 KiB
JavaScript

'use strict'
const Joi = require('joi')
const { ServiceTester } = require('..')
const { isMetric, isMetricOverTimePeriod } = require('../test-validators')
const t = new ServiceTester({ id: 'sourceforge', title: 'SourceForge' })
module.exports = t
t.create('total downloads')
.get('/dt/sevenzip.json')
.expectJSONTypes(
Joi.object().keys({
name: 'downloads',
value: isMetric,
})
)
t.create('monthly downloads')
.get('/dm/sevenzip.json')
.expectJSONTypes(
Joi.object().keys({
name: 'downloads',
value: isMetricOverTimePeriod,
})
)
t.create('weekly downloads')
.get('/dw/sevenzip.json')
.expectJSONTypes(
Joi.object().keys({
name: 'downloads',
value: isMetricOverTimePeriod,
})
)
t.create('daily downloads')
.get('/dd/sevenzip.json')
.expectJSONTypes(
Joi.object().keys({
name: 'downloads',
value: isMetricOverTimePeriod,
})
)
t.create('invalid project')
.get('/dd/invalid.json')
.expectJSON({
name: 'downloads',
value: 'invalid',
})
t.create('total downloads (connection error)')
.get('/dt/sevenzip.json')
.networkOff()
.expectJSON({
name: 'downloads',
value: 'inaccessible',
})