diff options
Diffstat (limited to 'deps/node/deps/npm/test/tap/404-parent.js')
-rw-r--r-- | deps/node/deps/npm/test/tap/404-parent.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/deps/node/deps/npm/test/tap/404-parent.js b/deps/node/deps/npm/test/tap/404-parent.js new file mode 100644 index 00000000..4321f7d8 --- /dev/null +++ b/deps/node/deps/npm/test/tap/404-parent.js @@ -0,0 +1,60 @@ +var common = require('../common-tap.js') +var test = require('tap').test +var npm = require('../../') +var osenv = require('osenv') +var path = require('path') +var fs = require('fs') +var rimraf = require('rimraf') +var mkdirp = require('mkdirp') +var pkg = path.resolve(__dirname, '404-parent') +var mr = require('npm-registry-mock') + +test('404-parent: if parent exists, specify parent in error message', function (t) { + setup() + rimraf.sync(path.resolve(pkg, 'node_modules')) + performInstall(function (err) { + t.ok(err instanceof Error, 'error was returned') + t.ok(err.parent === '404-parent-test', "error's parent set") + t.end() + }) +}) + +test('cleanup', function (t) { + process.chdir(osenv.tmpdir()) + rimraf.sync(pkg) + t.end() +}) + +function setup () { + mkdirp.sync(pkg) + mkdirp.sync(path.resolve(pkg, 'cache')) + fs.writeFileSync(path.resolve(pkg, 'package.json'), JSON.stringify({ + author: 'Evan Lucas', + name: '404-parent-test', + version: '0.0.0', + description: 'Test for 404-parent', + dependencies: { + 'test-npm-404-parent-test': '*' + } + }), 'utf8') + process.chdir(pkg) +} + +function performInstall (cb) { + mr({port: common.port}, function (er, s) { // create mock registry. + s.get('/test-npm-404-parent-test') + .many().reply(404, {'error': 'version not found'}) + npm.load({ + registry: common.registry + }, function () { + npm.config.set('fetch-retries', 0) + var pwd = process.cwd() + process.chdir(pkg) + npm.commands.install([], function (err) { + process.chdir(pwd) + cb(err) + s.close() // shutdown mock npm server. + }) + }) + }) +} |