* remove tests we don't need * use fetch/render pattern in [apm appveyor cdnjs clojars gem]
62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
'use strict'
|
|
|
|
const Joi = require('joi')
|
|
const ServiceTester = require('../service-tester')
|
|
const t = new ServiceTester({ id: 'apm', title: 'Atom Package Manager' })
|
|
const { invalidJSON } = require('../response-fixtures')
|
|
const { isMetric, isVPlusTripleDottedVersion } = require('../test-validators')
|
|
module.exports = t
|
|
|
|
t.create('Downloads')
|
|
.get('/dm/vim-mode.json')
|
|
.expectJSONTypes(Joi.object().keys({ name: 'downloads', value: isMetric }))
|
|
|
|
t.create('Version')
|
|
.get('/v/vim-mode.json')
|
|
.expectJSONTypes(
|
|
Joi.object().keys({ name: 'apm', value: isVPlusTripleDottedVersion })
|
|
)
|
|
|
|
t.create('License')
|
|
.get('/l/vim-mode.json')
|
|
.expectJSON({ name: 'license', value: 'MIT' })
|
|
|
|
t.create('Downloads | Package not found')
|
|
.get('/dm/notapackage.json')
|
|
.expectJSON({ name: 'downloads', value: 'package not found' })
|
|
|
|
t.create('Version | Package not found')
|
|
.get('/v/notapackage.json')
|
|
.expectJSON({ name: 'apm', value: 'package not found' })
|
|
|
|
t.create('License | Package not found')
|
|
.get('/l/notapackage.json')
|
|
.expectJSON({ name: 'license', value: 'package not found' })
|
|
|
|
t.create('Invalid version')
|
|
.get('/dm/vim-mode.json')
|
|
.intercept(nock =>
|
|
nock('https://atom.io')
|
|
.get('/api/packages/vim-mode')
|
|
.reply([200, '{"releases":{}}'])
|
|
)
|
|
.expectJSON({ name: 'downloads', value: 'unparseable json response' })
|
|
|
|
t.create('Invalid License')
|
|
.get('/l/vim-mode.json')
|
|
.intercept(nock =>
|
|
nock('https://atom.io')
|
|
.get('/api/packages/vim-mode')
|
|
.reply([200, '{"metadata":{}}'])
|
|
)
|
|
.expectJSON({ name: 'license', value: 'unparseable json response' })
|
|
|
|
t.create('Unexpected response')
|
|
.get('/dm/vim-mode.json')
|
|
.intercept(nock =>
|
|
nock('https://atom.io')
|
|
.get('/api/packages/vim-mode')
|
|
.reply(invalidJSON)
|
|
)
|
|
.expectJSON({ name: 'downloads', value: 'unparseable json response' })
|