@@ -258,6 +258,42 @@ describe('cli', function () {
258
258
} )
259
259
260
260
describe ( 'lifecycle scripts' , ( ) => {
261
+ describe ( 'prerelease hook' , function ( ) {
262
+ it ( 'should run the prerelease hook when provided' , function ( ) {
263
+ writePackageJson ( '1.0.0' , {
264
+ 'standard-version' : {
265
+ 'scripts' : {
266
+ 'prerelease' : 'node scripts/prerelease'
267
+ }
268
+ }
269
+ } )
270
+ writeHook ( 'prerelease' )
271
+ fs . writeFileSync ( 'CHANGELOG.md' , 'legacy header format<a name="1.0.0">\n' , 'utf-8' )
272
+
273
+ commit ( 'feat: first commit' )
274
+ var result = execCli ( '--patch' )
275
+ result . code . should . equal ( 0 )
276
+ result . stderr . should . match ( / p r e r e l e a s e r a n / )
277
+ } )
278
+
279
+ it ( 'should abort if the hook returns a non-zero exit code' , function ( ) {
280
+ writePackageJson ( '1.0.0' , {
281
+ 'standard-version' : {
282
+ 'scripts' : {
283
+ 'prerelease' : 'node scripts/prerelease && exit 1'
284
+ }
285
+ }
286
+ } )
287
+ writeHook ( 'prerelease' )
288
+ fs . writeFileSync ( 'CHANGELOG.md' , 'legacy header format<a name="1.0.0">\n' , 'utf-8' )
289
+
290
+ commit ( 'feat: first commit' )
291
+ var result = execCli ( '--patch' )
292
+ result . code . should . equal ( 1 )
293
+ result . stderr . should . match ( / p r e r e l e a s e r a n / )
294
+ } )
295
+ } )
296
+
261
297
describe ( 'prebump hook' , function ( ) {
262
298
it ( 'should allow prebump hook to return an alternate version #' , function ( ) {
263
299
writePackageJson ( '1.0.0' , {
0 commit comments