diff --git a/test/specs/last-release.js b/test/specs/last-release.js new file mode 100644 index 00000000..62b72b2d --- /dev/null +++ b/test/specs/last-release.js @@ -0,0 +1,62 @@ +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() + }) + }) +})