1var common = require('../common-tap.js') 2var test = require('tap').test 3var npm = require('../../') 4var path = require('path') 5var fs = require('fs') 6var mkdirp = require('mkdirp') 7var requireInject = require('require-inject') 8 9var pkg = common.pkg 10var cache = common.cache 11var gitDir = path.resolve(pkg, '.git') 12 13test('npm version <semver> in a git repo without the git binary', function (t) { 14 setup() 15 npm.load({cache: cache, registry: common.registry}, function () { 16 var version = requireInject('../../lib/version', { 17 which: function (cmd, cb) { 18 process.nextTick(function () { 19 cb(new Error('ENOGIT!')) 20 }) 21 } 22 }) 23 24 version(['patch'], function (err) { 25 if (!t.error(err)) return t.end() 26 var p = path.resolve(pkg, 'package') 27 var testPkg = require(p) 28 t.equal('0.0.1', testPkg.version, '\'' + testPkg.version + '\' === \'0.0.1\'') 29 t.end() 30 }) 31 }) 32}) 33 34function setup () { 35 mkdirp.sync(gitDir) 36 fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ 37 author: 'Terin Stock', 38 name: 'version-no-git-test', 39 version: '0.0.0', 40 description: "Test for npm version if git binary doesn't exist" 41 }), 'utf8') 42 process.chdir(pkg) 43} 44