test(prepublish): initial scenario
This commit is contained in:
		
							parent
							
								
									81df21b924
								
							
						
					
					
						commit
						ffbd39e78a
					
				| @ -5,3 +5,4 @@ var test = require('tape') | ||||
| var createModule = require('./lib/create-module') | ||||
| 
 | ||||
| require('./scenarios/install')(test, createModule) | ||||
| require('./scenarios/prepublish')(test, createModule) | ||||
|  | ||||
							
								
								
									
										49
									
								
								tests/scenarios/prepublish.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								tests/scenarios/prepublish.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | ||||
| 'use strict' | ||||
| 
 | ||||
| var fs = require('fs') | ||||
| var exec = require('child_process').exec | ||||
| 
 | ||||
| var efh = require('error-first-handler') | ||||
| var nixt = require('nixt') | ||||
| 
 | ||||
| module.exports = function (test, createModule) { | ||||
|   createModule(efh()(function (name, cwd) { | ||||
|     test('prepublish', function (t) { | ||||
|       prepublishTest(t, 'refactor: change', '0.0.0', 1, 'abort publish w/o changes') | ||||
|       prepublishTest(t, 'fix: change', '1.0.0', 0, 'release 1.0.0 if unpublished') | ||||
|       prepublishTest(t, 'fix: change', '1.0.1', 0, 'bump patch for fix') | ||||
|       prepublishTest(t, 'feat: change', '1.1.0', 0, 'bump minor for feature') | ||||
|       prepublishTest(t, 'fix: BREAKING CHANGE: change', '2.0.0', 0, 'bump major for breaking change') | ||||
|     }) | ||||
| 
 | ||||
|     function prepublishTest (t, message, version, code, name) { | ||||
|       t.test(name, function (t) { | ||||
|         t.plan(3) | ||||
| 
 | ||||
|         nixt() | ||||
|           .cwd(cwd) | ||||
|           .env('CI', true) | ||||
|           .exec('git commit --allow-empty -m "' + message + '"') | ||||
|           .run('npm run prepublish') | ||||
|           .code(code) | ||||
|           .stdout(/> semantic-release pre\n\nDetermining new version\n/m) | ||||
|           .end(function(err) { | ||||
|             t.error(err, 'nixt') | ||||
| 
 | ||||
|             var pkg = JSON.parse(fs.readFileSync(cwd + '/package.json')) | ||||
|             t.is(pkg.version, version, 'version') | ||||
| 
 | ||||
|             if (code === 1) { | ||||
|               return t.error(null, 'no publish') | ||||
|             } | ||||
| 
 | ||||
|             exec('npm publish --ignore-scripts', {cwd: cwd}, function(err) { | ||||
|               setTimeout(function() { | ||||
|                 t.error(err, 'publish') | ||||
|               }, 300) | ||||
|             }) | ||||
|           }) | ||||
|       }) | ||||
|     } | ||||
|   })) | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user