85 lines
1.8 KiB
JavaScript
85 lines
1.8 KiB
JavaScript
const { defaults } = require('lodash')
|
|
const test = require('tap').test
|
|
|
|
require('../mocks/registry')
|
|
const lastRelease = require('../../dist/lib/last-release')
|
|
|
|
const npmConfig = {
|
|
registry: 'http://registry.npmjs.org/',
|
|
tag: 'latest'
|
|
}
|
|
|
|
test('last release from registry', (t) => {
|
|
t.plan(5)
|
|
|
|
t.test('get release from package name', (tt) => {
|
|
lastRelease({
|
|
name: 'available'
|
|
},
|
|
npmConfig,
|
|
(err, release) => {
|
|
tt.error(err)
|
|
tt.is(release.version, '1.33.7', 'version')
|
|
tt.is(release.gitHead, 'HEAD', 'gitHead')
|
|
tt.is(release.tag, 'latest', 'dist-tag')
|
|
|
|
tt.end()
|
|
})
|
|
})
|
|
|
|
t.test('get release from a tagged package\'s name', (tt) => {
|
|
lastRelease({
|
|
name: 'tagged'
|
|
},
|
|
defaults({tag: 'foo'}, npmConfig),
|
|
(err, release) => {
|
|
tt.error(err)
|
|
tt.is(release.version, '0.8.15', 'version')
|
|
tt.is(release.gitHead, 'bar', 'gitHead')
|
|
tt.is(release.tag, 'foo', 'dist-tag')
|
|
|
|
tt.end()
|
|
})
|
|
})
|
|
|
|
t.test('get error from an untagged package\'s name', (tt) => {
|
|
lastRelease({
|
|
name: 'untagged'
|
|
},
|
|
defaults({tag: 'bar'}, npmConfig),
|
|
(err) => {
|
|
tt.is(err.code, 'ENODISTTAG', 'error')
|
|
|
|
tt.end()
|
|
})
|
|
})
|
|
|
|
t.test('get release from scoped package name', (tt) => {
|
|
lastRelease({
|
|
name: '@scoped/available'
|
|
},
|
|
npmConfig,
|
|
(err, release) => {
|
|
tt.error(err)
|
|
tt.is(release.version, '1.33.7', 'version')
|
|
tt.is(release.gitHead, 'HEAD', 'gitHead')
|
|
tt.is(release.tag, 'latest', 'dist-tag')
|
|
|
|
tt.end()
|
|
})
|
|
})
|
|
|
|
t.test('get nothing from not yet published package name', (tt) => {
|
|
lastRelease({
|
|
name: 'unavailable'
|
|
},
|
|
npmConfig,
|
|
(err, release) => {
|
|
tt.error(err)
|
|
tt.is(release.version, undefined, 'no version')
|
|
|
|
tt.end()
|
|
})
|
|
})
|
|
})
|