summaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/test/tap/builtin-config.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-04-03 15:43:32 +0200
committerFlorian Dold <florian.dold@gmail.com>2019-04-03 15:45:57 +0200
commit71e285b94c7edaa43aa8115965cf5a36b8e0f80a (patch)
tree7d4aa9d0d5aff686b106cd5da72ba77960c4af43 /deps/node/deps/npm/test/tap/builtin-config.js
parent7dadf9356b4f3f4137ce982ea5bb960283116e9a (diff)
downloadakono-71e285b94c7edaa43aa8115965cf5a36b8e0f80a.tar.gz
akono-71e285b94c7edaa43aa8115965cf5a36b8e0f80a.tar.bz2
akono-71e285b94c7edaa43aa8115965cf5a36b8e0f80a.zip
Node.js v11.13.0
Diffstat (limited to 'deps/node/deps/npm/test/tap/builtin-config.js')
-rw-r--r--deps/node/deps/npm/test/tap/builtin-config.js136
1 files changed, 136 insertions, 0 deletions
diff --git a/deps/node/deps/npm/test/tap/builtin-config.js b/deps/node/deps/npm/test/tap/builtin-config.js
new file mode 100644
index 00000000..b960ed03
--- /dev/null
+++ b/deps/node/deps/npm/test/tap/builtin-config.js
@@ -0,0 +1,136 @@
+var fs = require('fs')
+
+if (process.argv[2] === 'write-builtin') {
+ var pid = process.argv[3]
+ fs.writeFileSync('npmrc', 'foo=bar\npid=' + pid + '\n')
+ process.exit(0)
+}
+
+var common = require('../common-tap.js')
+var path = require('path')
+var rimraf = require('rimraf')
+var mkdirp = require('mkdirp')
+var folder = path.resolve(__dirname, 'builtin-config')
+var test = require('tap').test
+var npm = path.resolve(__dirname, '../..')
+var spawn = require('child_process').spawn
+var node = common.nodeBin
+
+test('setup', function (t) {
+ t.plan(1)
+ rimraf.sync(folder)
+ mkdirp.sync(folder + '/first')
+ mkdirp.sync(folder + '/second')
+ mkdirp.sync(folder + '/cache')
+ mkdirp.sync(folder + '/tmp')
+
+ t.pass('finished setup')
+ t.end()
+})
+
+test('install npm into first folder', function (t) {
+ t.plan(1)
+ var args = ['install', npm, '-g',
+ '--prefix=' + folder + '/first',
+ '--ignore-scripts',
+ '--cache=' + folder + '/cache',
+ '--tmp=' + folder + '/tmp',
+ '--loglevel=warn',
+ '--progress']
+ common.npm(args, {}, function (er, code) {
+ if (er) throw er
+ t.equal(code, 0)
+ t.end()
+ })
+})
+
+test('write npmrc file', function (t) {
+ t.plan(1)
+ common.npm(['explore', 'npm', '-g',
+ '--prefix=' + folder + '/first',
+ '--cache=' + folder + '/cache',
+ '--tmp=' + folder + '/tmp',
+ '--', node, __filename, 'write-builtin', process.pid
+ ],
+ {'stdio': 'inherit'},
+ function (er, code) {
+ if (er) throw er
+ t.equal(code, 0)
+ t.end()
+ })
+})
+
+test('use first npm to install second npm', function (t) {
+ t.plan(3)
+ // get the root location
+ common.npm(
+ [
+ 'root', '-g',
+ '--prefix=' + folder + '/first',
+ '--cache=' + folder + '/cache',
+ '--tmp=' + folder + '/tmp'
+ ],
+ {},
+ function (er, code, so) {
+ if (er) throw er
+ t.equal(code, 0, 'got npm root')
+ var root = so.trim()
+ t.ok(fs.statSync(root).isDirectory(), 'npm root is dir')
+
+ var bin = path.resolve(root, 'npm/bin/npm-cli.js')
+ spawn(
+ node,
+ [
+ bin,
+ 'install', npm,
+ '-g',
+ '--ignore-scripts',
+ '--prefix=' + folder + '/second',
+ '--cache=' + folder + '/cache',
+ '--tmp=' + folder + '/tmp'
+ ],
+ {}
+ )
+ .on('error', function (er) { throw er })
+ .on('close', function (code) {
+ t.equal(code, 0, 'second npm install')
+ t.end()
+ })
+ }
+ )
+})
+
+test('verify that the builtin config matches', function (t) {
+ t.plan(3)
+ common.npm([ 'root', '-g',
+ '--prefix=' + folder + '/first',
+ '--cache=' + folder + '/cache',
+ '--tmp=' + folder + '/tmp'
+ ], {},
+ function (er, code, so) {
+ if (er) throw er
+ t.equal(code, 0)
+ var firstRoot = so.trim()
+ common.npm([ 'root', '-g',
+ '--prefix=' + folder + '/second',
+ '--cache=' + folder + '/cache',
+ '--tmp=' + folder + '/tmp'
+ ], {},
+ function (er, code, so) {
+ if (er) throw er
+ t.equal(code, 0)
+ var secondRoot = so.trim()
+ var firstRc = path.resolve(firstRoot, 'npm', 'npmrc')
+ var secondRc = path.resolve(secondRoot, 'npm', 'npmrc')
+ var firstData = fs.readFileSync(firstRc, 'utf8').split(/\r?\n/)
+ var secondData = fs.readFileSync(secondRc, 'utf8').split(/\r?\n/)
+ t.isDeeply(firstData, secondData)
+ t.end()
+ })
+ })
+})
+
+test('clean', function (t) {
+ rimraf.sync(folder)
+ t.end()
+})