const t = require('tap')
const index = require.resolve('../index.js')
const packageIndex = require.resolve('../')

t.equal(index, packageIndex, 'index is main package require() export')
t.throws(() => require(index), {
  message: 'The programmatic API was removed in npm v8.0.0',
})

t.test('loading as main module will load the cli', t => {
  const cwd = t.testdir()
  const { spawn } = require('child_process')
  const LS = require('../lib/commands/ls.js')
  const ls = new LS({ config: { validate: () => {} } })
  const p = spawn(process.execPath, [index, 'ls', '-h', '--cache', cwd])
  const out = []
  p.stdout.on('data', c => out.push(c))
  p.on('close', (code, signal) => {
    t.equal(code, 0)
    t.equal(signal, null)
    t.match(Buffer.concat(out).toString(), ls.usage)
    t.end()
  })
})
