@@ -63,6 +63,50 @@ describe("NPM package - success tests", () => {
63
63
npm . assert . ran ( 4 ) ;
64
64
} ) ;
65
65
66
+ it ( "should publish a new version to NPM if no package exists" , async ( ) => {
67
+ files . create ( [
68
+ { path : "workspace/package.json" , contents : { name : "my-lib" , version : "2.0.0" } } ,
69
+ ] ) ;
70
+
71
+ npm . mock ( {
72
+ args : [ "config" , "get" , "userconfig" ] ,
73
+ stdout : `${ paths . npmrc } ${ EOL } ` ,
74
+ } ) ;
75
+
76
+ npm . mock ( {
77
+ args : [ "view" , "my-lib" , "version" ] ,
78
+ stdout : `${ EOL } ` ,
79
+ stderr : `npm ERR! code E404${ EOL } `
80
+ } ) ;
81
+
82
+ npm . mock ( {
83
+ args : [ "config" , "get" , "userconfig" ] ,
84
+ stdout : `${ paths . npmrc } ${ EOL } ` ,
85
+ } ) ;
86
+
87
+ npm . mock ( {
88
+ args : [ "publish" ] ,
89
+ stdout : `my-lib 2.0.0${ EOL } ` ,
90
+ } ) ;
91
+
92
+ let results = await npmPublish ( { quiet : true } ) ;
93
+
94
+ expect ( results ) . to . deep . equal ( {
95
+ type : "major" ,
96
+ package : "my-lib" ,
97
+ version : "2.0.0" ,
98
+ oldVersion : "0.0.0" ,
99
+ dryRun : false ,
100
+ } ) ;
101
+
102
+ files . assert . contents ( "home/.npmrc" ,
103
+ `//registry.npmjs.org/:_authToken=\${INPUT_TOKEN}${ EOL } ` +
104
+ `registry=https://registry.npmjs.org/${ EOL } `
105
+ ) ;
106
+
107
+ npm . assert . ran ( 4 ) ;
108
+ } ) ;
109
+
66
110
it ( "should not publish a new version to NPM if the version number hasn't changed" , async ( ) => {
67
111
files . create ( [
68
112
{ path : "workspace/package.json" , contents : { name : "my-lib" , version : "1.0.0" } } ,
0 commit comments