@@ -181,8 +181,23 @@ test.serial('Publish the package', async t => {
181181const pkg = { name :'publish' , version :'0.0.0' , publishConfig :{ registry :npmRegistry . url } } ;
182182await outputJson ( './package.json' , pkg ) ;
183183
184- await t . context . m . publish ( { } , { logger :t . context . logger , nextRelease :{ version :'1.0.0' } } ) ;
184+ const result = await t . context . m . publish ( { } , { logger :t . context . logger , nextRelease :{ version :'1.0.0' } } ) ;
185185
186+ t . deepEqual ( result , { name :'npm package (@latest dist-tag)' , url :undefined } ) ;
187+ t . is ( ( await readJson ( './package.json' ) ) . version , '1.0.0' ) ;
188+ t . false ( await pathExists ( `./${ pkg . name } -1.0.0.tgz` ) ) ;
189+ t . is ( ( await execa ( 'npm' , [ 'view' , pkg . name , 'version' ] ) ) . stdout , '1.0.0' ) ;
190+ } ) ;
191+
192+ test . serial ( 'Publish the package on a dist-tag' , async t => {
193+ Object . assign ( process . env , npmRegistry . authEnv ) ;
194+ process . env . DEFAULT_NPM_REGISTRY = npmRegistry . url ;
195+ const pkg = { name :'publish-tag' , version :'0.0.0' , publishConfig :{ registry :npmRegistry . url , tag :'next' } } ;
196+ await outputJson ( './package.json' , pkg ) ;
197+
198+ const result = await t . context . m . publish ( { } , { logger :t . context . logger , nextRelease :{ version :'1.0.0' } } ) ;
199+
200+ t . deepEqual ( result , { name :'npm package (@next dist-tag)' , url :'https://www.npmjs.com/package/publish-tag' } ) ;
186201t . is ( ( await readJson ( './package.json' ) ) . version , '1.0.0' ) ;
187202t . false ( await pathExists ( `./${ pkg . name } -1.0.0.tgz` ) ) ;
188203t . is ( ( await execa ( 'npm' , [ 'view' , pkg . name , 'version' ] ) ) . stdout , '1.0.0' ) ;
@@ -193,8 +208,12 @@ test.serial('Publish the package from a sub-directory', async t => {
193208const pkg = { name :'publish-sub-dir' , version :'0.0.0' , publishConfig :{ registry :npmRegistry . url } } ;
194209await outputJson ( './dist/package.json' , pkg ) ;
195210
196- await t . context . m . publish ( { pkgRoot :'dist' } , { logger :t . context . logger , nextRelease :{ version :'1.0.0' } } ) ;
211+ const result = await t . context . m . publish (
212+ { pkgRoot :'dist' } ,
213+ { logger :t . context . logger , nextRelease :{ version :'1.0.0' } }
214+ ) ;
197215
216+ t . deepEqual ( result , { name :'npm package (@latest dist-tag)' , url :undefined } ) ;
198217t . is ( ( await readJson ( './dist/package.json' ) ) . version , '1.0.0' ) ;
199218t . false ( await pathExists ( `./${ pkg . name } -1.0.0.tgz` ) ) ;
200219t . is ( ( await execa ( 'npm' , [ 'view' , pkg . name , 'version' ] ) ) . stdout , '1.0.0' ) ;
@@ -211,11 +230,12 @@ test.serial('Create the package and skip publish', async t => {
211230const pkg = { name :'skip-publish' , version :'0.0.0' , publishConfig :{ registry :npmRegistry . url } } ;
212231await outputJson ( './package.json' , pkg ) ;
213232
214- await t . context . m . publish (
233+ const result = await t . context . m . publish (
215234{ npmPublish :false , tarballDir :'tarball' } ,
216235{ logger :t . context . logger , nextRelease :{ version :'1.0.0' } }
217236) ;
218237
238+ t . deepEqual ( result , { name :'npm package (@latest dist-tag)' , url :undefined } ) ;
219239t . is ( ( await readJson ( './package.json' ) ) . version , '1.0.0' ) ;
220240t . true ( await pathExists ( `./tarball/${ pkg . name } -1.0.0.tgz` ) ) ;
221241await t . throws ( execa ( 'npm' , [ 'view' , pkg . name , 'version' ] ) ) ;
@@ -226,11 +246,12 @@ test.serial('Create the package and skip publish from a sub-directory', async t
226246const pkg = { name :'skip-publish-sub-dir' , version :'0.0.0' , publishConfig :{ registry :npmRegistry . url } } ;
227247await outputJson ( './dist/package.json' , pkg ) ;
228248
229- await t . context . m . publish (
249+ const result = await t . context . m . publish (
230250{ npmPublish :false , tarballDir :'./tarball' , pkgRoot :'./dist' } ,
231251{ logger :t . context . logger , nextRelease :{ version :'1.0.0' } }
232252) ;
233253
254+ t . deepEqual ( result , { name :'npm package (@latest dist-tag)' , url :undefined } ) ;
234255t . is ( ( await readJson ( './dist/package.json' ) ) . version , '1.0.0' ) ;
235256t . true ( await pathExists ( `./tarball/${ pkg . name } -1.0.0.tgz` ) ) ;
236257await t . throws ( execa ( 'npm' , [ 'view' , pkg . name , 'version' ] ) ) ;
@@ -243,5 +264,6 @@ test.serial('Verify token and set up auth only on the fist call', async t => {
243264
244265await t . notThrows ( t . context . m . verifyConditions ( { } , { options :{ } , logger :t . context . logger } ) ) ;
245266
246- await t . context . m . publish ( { } , { logger :t . context . logger , nextRelease :{ version :'1.0.0' } } ) ;
267+ const result = await t . context . m . publish ( { } , { logger :t . context . logger , nextRelease :{ version :'1.0.0' } } ) ;
268+ t . deepEqual ( result , { name :'npm package (@latest dist-tag)' , url :undefined } ) ;
247269} ) ;