Files
pnpm/packages/package-is-installable/test/checkEngine.ts
Zoltan Kochan d7d0ecb91d fix: headless install should skip optional deps that are not installable
PR #1606

* feat: wip

* refactor(filter-shrinkwrap): divide into several files

* fix(filter-shrinkwrap): filterByImporters should skip skipped deps

* fix: make package-is-installable synchronous

* feat: implement filterByImportersAndEngine()

* fix: headless install skips optional deps that are not installable

close #1600

* fix: don't await for packageIsInstallable

* fix: absolute dep path should be saved in skipped list

* test(filter-shrinkwrap): more tests for filterByImportersAndEngine()

* test: skipping optional dep when installing in subset of wpackages
2019-01-15 21:50:06 +02:00

29 lines
851 B
TypeScript

import test = require('tape')
import checkEngine from '../src/checkEngine'
const packageId = 'registry.npmjs.org/foo/1.0.0'
test('no engine defined', (t) => {
t.equals(checkEngine(packageId, {}, { pnpm: '1.1.2', node: '0.2.1' }), null)
t.end()
})
test('node version too old', (t) => {
const err = checkEngine(packageId, { node: '0.10.24' }, { pnpm: '1.1.2', node: '0.10.18' })
t.ok(err, 'returns an error')
t.equals(err && err.wanted.node, '0.10.24')
t.end()
})
test('pnpm version too old', (t) => {
const err = checkEngine(packageId, { pnpm: '^1.4.6' }, { pnpm: '1.3.2', node: '0.2.1' })
t.ok(err, 'returns an error')
t.equals(err && err.wanted.pnpm, '^1.4.6')
t.end()
})
test('engine is supported', (t) => {
t.equals(checkEngine(packageId, { pnpm: '1', node: '10' }, { pnpm: '1.3.2', node: '10.2.1' }), null)
t.end()
})