You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

62 lines
1.8 KiB

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()
})
})