semantic-release/test/specs/last-release.js
2015-06-14 18:17:25 -07:00

63 lines
1.3 KiB
JavaScript

const test = require('tap').test
const nock = require('nock')
const lastRelease = require('../../dist/lib/last-release.js')
const availableModule = {
'dist-tags': {
latest: '1.33.7'
},
versions: {
'1.33.7': {
gitHead: 'HEAD'
}
}
}
const registry = 'http://registry.npmjs.org'
const regMock = nock(registry)
.get('/available')
.reply(200, availableModule)
.get('/@scoped/available')
.reply(200, availableModule)
.get('/unavailable')
.reply(404, {})
test('last release from registry', (t) => {
t.test('get release from package name', (t) => {
lastRelease({
name: 'available'
}, {
registry
}, (err, release) => {
t.error(err)
t.is(release.version, '1.33.7', 'version')
t.is(release.gitHead, 'HEAD', 'gitHead')
})
})
t.test('get release from scoped package name', (t) => {
lastRelease({
name: '@scoped/available'
}, {
registry
}, (err, release) => {
t.error(err)
t.is(release.version, '1.33.7', 'version')
t.is(release.gitHead, 'HEAD', 'gitHead')
})
})
t.test('get nothing from not yet published package name', (t) => {
lastRelease({
name: 'unavailable'
}, {
registry
}, (err, release) => {
t.error(err)
t.is(release.version, undefined, 'no version')
regMock.done()
})
})
})