var common = require('../common-tap.js') var test = require('tap').test var osenv = require('osenv') var path = require('path') var mkdirp = require('mkdirp') var rimraf = require('rimraf') var pkg = path.resolve(__dirname, 'version-no-package') test('setup', function (t) { setup() t.end() }) test('npm version in a prefix with no package.json', function (t) { setup() common.npm( ['version', '--json', '--prefix', pkg], { cwd: pkg }, function (er, code, stdout, stderr) { t.ifError(er, "npm version doesn't care that there's no package.json") t.notOk(code, 'npm version ran without barfing') t.ok(stdout, 'got version output') t.notOk(stderr, 'no error output') t.doesNotThrow(function () { var metadata = JSON.parse(stdout) t.equal(metadata.node, process.versions.node, 'node versions match') }, 'able to reconstitute version object from stdout') t.end() } ) }) test('cleanup', function (t) { process.chdir(osenv.tmpdir()) rimraf.sync(pkg) t.end() }) function setup () { mkdirp.sync(pkg) process.chdir(pkg) }