2 var path = require('path')
4 var mkdirp = require('mkdirp')
5 var mr = require('npm-registry-mock')
6 var osenv = require('osenv')
7 var rimraf = require('rimraf')
8 var test = require('tap').test
10 var npm = require('../../')
11 var common = require('../common-tap.js')
13 var pkg = path.resolve(__dirname, 'peer-deps-without-package-json')
14 var cache = path.resolve(pkg, 'cache')
15 var nodeModules = path.resolve(pkg, 'node_modules')
17 var fileJS = function () {
19 * { "name": "npm-test-peer-deps-file"
20 * , "main": "index.js"
21 * , "version": "1.2.3"
22 * , "description":"No package.json in sight!"
23 * , "peerDependencies": { "underscore": "1.3.1" }
24 * , "dependencies": { "mkdirp": "0.3.5" }
28 module.exports = 'I\'m just a lonely index, naked as the day I was born.'
29 }.toString().split('\n').slice(1, -1).join('\n')
31 test('setup', function (t) {
32 t.comment('test for https://github.com/npm/npm/issues/3049')
35 mkdirp.sync(nodeModules)
36 fs.writeFileSync(path.join(pkg, 'file-js.js'), fileJS)
42 test('installing a peerDeps-using package without package.json', function (t) {
45 '/ok.js': [200, path.join(pkg, 'file-js.js')]
48 mr({port: common.port, mocks: customMocks}, function (err, s) {
49 t.ifError(err, 'mock registry booted')
51 registry: common.registry,
54 npm.install(common.registry + '/ok.js', function (err) {
55 t.ifError(err, 'installed ok.js')
58 fs.existsSync(path.join(nodeModules, 'npm-test-peer-deps-file')),
59 'passive peer dep installed'
62 fs.existsSync(path.join(nodeModules, 'underscore')),
63 'underscore installed'
67 s.close() // shutdown mock registry.
73 test('cleanup', function (t) {
79 process.chdir(osenv.tmpdir())