aboutsummaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/node_modules/npm-install-checks/test/check-engine.js
blob: a8fa0390a13471793907610187be997ca19714b6 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
var test = require('tap').test
var c = require('../index.js').checkEngine

test('no engine defined', function (t) {
  c({ engines: {} }, '1.1.2', '0.2.1', false, true, function (err) {
    t.notOk(err, 'no error present')
    t.end()
  })
})

test('node version too old', function (t) {
  var target = { engines: { node: '0.10.24' } }
  c(target, '1.1.2', '0.10.18', false, true, function (err) {
    t.ok(err, 'returns an error')
    t.equals(err.required.node, '0.10.24')
    t.end()
  })
})

test('npm version too old', function (t) {
  var target = { engines: { npm: '^1.4.6' } }
  c(target, '1.3.2', '0.2.1', false, true, function (err) {
    t.ok(err, 'returns an error')
    t.equals(err.required.npm, '^1.4.6')
    t.end()
  })
})

test('strict=false w/engineStrict json does not return an error', function (t) {
  var target = { engines: { npm: '1.3.6' }, engineStrict: true }
  c(target, '1.4.2', '0.2.1', false, false, function (err, warn) {
    t.notOk(err, 'returns no error')
    t.ok(warn, 'returns warning object')
    t.equals(warn.required.npm, '1.3.6')
    t.end()
  })
})

test('force node version too old', function (t) {
  var target = { _id: 'test@1.0.0', engines: { node: '0.1.0' } }
  c(target, '1.3.2', '0.2.1', true, true, function (err, warn) {
    t.is(err, undefined, 'returns no error')
    t.notOk(warn, 'returns no warning')
    t.end()
  })
})

test('force npm version too old', function (t) {
  var target = { _id: 'test@1.0.0', engines: { npm: '^1.4.6' } }
  c(target, '1.3.2', '0.2.1', true, true, function (err, warn) {
    t.ok(err, "can't force an npm version mismatch")
    t.end()
  })
})

test('no engine', function (t) {
  c({}, '1.3.2', '0.2.1', false, true, function (err, warn) {
    t.notOk(err, 'returns no error')
    t.notOk(warn, 'returns no warning')
    t.end()
  })
})