diff --git a/test/mocks/registry.js b/test/mocks/registry.js index 9a326fff..7aece9b8 100644 --- a/test/mocks/registry.js +++ b/test/mocks/registry.js @@ -2,9 +2,13 @@ const nock = require('nock') const availableModule = { 'dist-tags': { - latest: '1.33.7' + latest: '1.33.7', + foo: '0.8.15' }, versions: { + '0.8.15': { + gitHead: 'bar' + }, '1.33.7': { gitHead: 'HEAD' } @@ -14,6 +18,10 @@ const availableModule = { module.exports = nock('http://registry.npmjs.org') .get('/available') .reply(200, availableModule) + .get('/tagged') + .reply(200, availableModule) + .get('/untagged') + .reply(200, availableModule) .get('/@scoped/available') .reply(200, availableModule) .get('/unavailable') diff --git a/test/specs/last-release.js b/test/specs/last-release.js index 008894c8..60c06383 100644 --- a/test/specs/last-release.js +++ b/test/specs/last-release.js @@ -1,21 +1,54 @@ +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/' + 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, + }, + 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() }) @@ -24,11 +57,13 @@ test('last release from registry', (t) => { t.test('get release from scoped package name', (tt) => { lastRelease({ name: '@scoped/available' - }, npmConfig, + }, + 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() }) @@ -37,7 +72,8 @@ test('last release from registry', (t) => { t.test('get nothing from not yet published package name', (tt) => { lastRelease({ name: 'unavailable' - }, npmConfig, + }, + npmConfig, (err, release) => { tt.error(err) tt.is(release.version, undefined, 'no version') @@ -45,6 +81,4 @@ test('last release from registry', (t) => { tt.end() }) }) - - t.end() }) diff --git a/test/specs/pre.js b/test/specs/pre.js index 55c1cc87..c7b67b87 100644 --- a/test/specs/pre.js +++ b/test/specs/pre.js @@ -11,15 +11,20 @@ const plugins = { analyzeCommits: (commits, cb) => cb(null, 'major') } +const npmConfig = { + registry: 'http://registry.npmjs.org/', + tag: 'latest' + +} + test('full pre run', (t) => { t.test('increase version', (tt) => { tt.plan(3) pre({ name: 'available' - }, { - registry: 'http://registry.npmjs.org/' }, + npmConfig, plugins, (err, release) => { tt.error(err) @@ -33,9 +38,8 @@ test('full pre run', (t) => { pre({ name: 'unavailable' - }, { - registry: 'http://registry.npmjs.org/' }, + npmConfig, plugins, (err, release) => { tt.error(err)