1const t = require('tap') 2const spawn = require('@npmcli/promise-spawn') 3const index = require.resolve('../index.js') 4const packageIndex = require.resolve('../') 5const { load: loadMockNpm } = require('./fixtures/mock-npm') 6 7t.equal(index, packageIndex, 'index is main package require() export') 8t.throws(() => require(index), { 9 message: 'The programmatic API was removed in npm v8.0.0', 10}) 11 12t.test('loading as main module will load the cli', async t => { 13 const { npm, cache } = await loadMockNpm(t) 14 const LS = require('../lib/commands/ls.js') 15 const ls = new LS(npm) 16 const p = await spawn(process.execPath, [index, 'ls', '-h', '--cache', cache]) 17 t.equal(p.code, 0) 18 t.equal(p.signal, null) 19 t.match(p.stdout, ls.usage) 20}) 21