summaryrefslogtreecommitdiff
path: root/deps/npm/test/tap/version-no-package.js
blob: e4eeda0eebda0ff864439f67b15831849b5a90bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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)
}