1 var common = require('../common-tap.js')
3 var path = require('path')
5 var mkdirp = require('mkdirp')
6 var osenv = require('osenv')
7 var rimraf = require('rimraf')
8 var test = require('tap').test
10 var npm = require('../../lib/npm.js')
12 var pkg = path.resolve(__dirname, 'version-sub-directory')
13 var subDirectory = path.resolve(pkg, 'sub-directory')
14 var packagePath = path.resolve(pkg, 'package.json')
15 var cache = path.resolve(pkg, 'cache')
17 var json = { name: 'cat', version: '0.1.2' }
19 test('npm version <semver> from a subdirectory', function (t) {
24 npm.load({ cache: cache }, function () {
27 added: ['package.json']
32 function version (er, stdout, stderr) {
33 t.ifError(er, 'git repo initialized without issue')
34 t.notOk(stderr, 'no error output')
35 npm.config.set('sign-git-tag', false)
36 npm.commands.version(['patch'], checkVersion)
39 function checkVersion (er) {
40 var git = require('../../lib/utils/git.js')
41 t.ifError(er, 'version command ran without error')
44 { cwd: pkg, env: process.env },
49 function checkCommit (er, log, stderr) {
50 t.ifError(er, 'git log ran without issue')
51 t.notOk(stderr, 'no error output')
52 t.ok(log.match(/0\.1\.3/g), 'commited from subdirectory')
57 test('cleanup', function (t) {
63 // windows fix for locked files
64 process.chdir(osenv.tmpdir())
71 mkdirp.sync(subDirectory)
72 process.chdir(subDirectory)
73 fs.writeFileSync(packagePath, JSON.stringify(json), 'utf8')