summaryrefslogtreecommitdiff
path: root/deps/npm/test
diff options
context:
space:
mode:
authornpm CLI robot <npm-cli+bot@github.com>2022-12-09 08:38:13 -0500
committerGitHub <noreply@github.com>2022-12-09 13:38:13 +0000
commit7d80ca36833905d315560fc84f7245a3684d5189 (patch)
treeb805678c47652f7009dbd0c5246699f482eca91d /deps/npm/test
parent5fe07950411a119cd729d1eec326ca6dae107520 (diff)
downloadnode-new-7d80ca36833905d315560fc84f7245a3684d5189.tar.gz
deps: upgrade npm to 9.2.0
PR-URL: https://github.com/nodejs/node/pull/45780 Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Diffstat (limited to 'deps/npm/test')
-rw-r--r--deps/npm/test/lib/commands/doctor.js204
1 files changed, 179 insertions, 25 deletions
diff --git a/deps/npm/test/lib/commands/doctor.js b/deps/npm/test/lib/commands/doctor.js
index eaf2ee6c6f..a4602183e6 100644
--- a/deps/npm/test/lib/commands/doctor.js
+++ b/deps/npm/test/lib/commands/doctor.js
@@ -1,5 +1,6 @@
const t = require('tap')
const fs = require('fs')
+const path = require('path')
const { load: loadMockNpm } = require('../../fixtures/mock-npm')
const tnock = require('../../fixtures/tnock.js')
@@ -52,11 +53,14 @@ const dirs = {
},
}
-const globals = {
- process: {
- platform: 'test-not-windows',
- version: 'v1.0.0',
- },
+const globals = ({ globalPrefix }) => {
+ return {
+ process: {
+ 'env.PATH': `${globalPrefix}:${path.join(globalPrefix, 'bin')}`,
+ platform: 'test-not-windows',
+ version: 'v1.0.0',
+ },
+ }
}
// getuid and getgid do not exist in windows, so we shim them
@@ -114,7 +118,7 @@ t.test('all clear in color', async t => {
t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
})
-t.test('silent', async t => {
+t.test('silent success', async t => {
const { joinedOutput, logs, npm } = await loadMockNpm(t, {
mocks,
globals,
@@ -133,6 +137,24 @@ t.test('silent', async t => {
t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
})
+t.test('silent errors', async t => {
+ const { joinedOutput, logs, npm } = await loadMockNpm(t, {
+ mocks,
+ globals,
+ config: {
+ loglevel: 'silent',
+ },
+ ...dirs,
+ })
+ tnock(t, npm.config.get('registry'))
+ .get('/-/ping?write=true').reply(404, '{}')
+ await t.rejects(npm.exec('doctor', ['ping']), {
+ message: /Check logs/,
+ })
+ t.matchSnapshot(joinedOutput(), 'output')
+ t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
+})
+
t.test('ping 404', async t => {
const { joinedOutput, logs, npm } = await loadMockNpm(t, {
mocks,
@@ -144,7 +166,9 @@ t.test('ping 404', async t => {
.get('/npm').reply(200, npmManifest(npm.version))
tnock(t, 'https://nodejs.org')
.get('/dist/index.json').reply(200, nodeVersions)
- await t.rejects(npm.exec('doctor', []))
+ await t.rejects(npm.exec('doctor', []), {
+ message: /See above/,
+ })
t.matchSnapshot(joinedOutput(), 'ping 404')
t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
})
@@ -217,12 +241,16 @@ t.test('npm out of date', async t => {
t.test('node out of date - lts', async t => {
const { joinedOutput, logs, npm } = await loadMockNpm(t, {
mocks,
- globals: {
- ...globals,
- process: {
- platform: 'test-not-windows',
- version: 'v0.0.1',
- },
+ globals: (context) => {
+ const g = globals(context)
+ return {
+ ...g,
+ process: {
+ ...g.process,
+ platform: 'test-not-windows',
+ version: 'v0.0.1',
+ },
+ }
},
...dirs,
})
@@ -239,12 +267,15 @@ t.test('node out of date - lts', async t => {
t.test('node out of date - current', async t => {
const { joinedOutput, logs, npm } = await loadMockNpm(t, {
mocks,
- globals: {
- ...globals,
- process: {
- ...globals.process,
- version: 'v2.0.0',
- },
+ globals: (context) => {
+ const g = globals(context)
+ return {
+ ...g,
+ process: {
+ ...g.process,
+ version: 'v2.0.0',
+ },
+ }
},
...dirs,
})
@@ -299,12 +330,15 @@ t.test('missing git', async t => {
t.test('windows skips permissions checks', async t => {
const { joinedOutput, logs, npm } = await loadMockNpm(t, {
mocks,
- globals: {
- ...globals,
- process: {
- ...globals.process,
- platform: 'win32',
- },
+ globals: (context) => {
+ const g = globals(context)
+ return {
+ ...g,
+ process: {
+ ...g.process,
+ platform: 'win32',
+ },
+ }
},
prefixDir: {},
globalPrefixDir: {},
@@ -510,3 +544,123 @@ t.test('bad proxy', async t => {
t.matchSnapshot(joinedOutput(), 'output')
t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
})
+
+t.test('discrete checks', t => {
+ t.test('ping', async t => {
+ const { joinedOutput, logs, npm } = await loadMockNpm(t, {
+ mocks,
+ globals,
+ ...dirs,
+ })
+ tnock(t, npm.config.get('registry'))
+ .get('/-/ping?write=true').reply(200, '{}')
+ await npm.exec('doctor', ['ping'])
+ t.matchSnapshot(joinedOutput(), 'output')
+ t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
+ })
+
+ t.test('versions', async t => {
+ const { joinedOutput, logs, npm } = await loadMockNpm(t, {
+ mocks,
+ globals,
+ ...dirs,
+ })
+ tnock(t, npm.config.get('registry'))
+ .get('/npm').reply(200, npmManifest(npm.version))
+ tnock(t, 'https://nodejs.org')
+ .get('/dist/index.json').reply(200, nodeVersions)
+ await npm.exec('doctor', ['versions'])
+ t.matchSnapshot(joinedOutput(), 'output')
+ t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
+ })
+
+ t.test('registry', async t => {
+ const { joinedOutput, logs, npm } = await loadMockNpm(t, {
+ mocks,
+ globals,
+ ...dirs,
+ })
+ tnock(t, npm.config.get('registry'))
+ .get('/-/ping?write=true').reply(200, '{}')
+ await npm.exec('doctor', ['registry'])
+ t.matchSnapshot(joinedOutput(), 'output')
+ t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
+ })
+
+ t.test('git', async t => {
+ const { joinedOutput, logs, npm } = await loadMockNpm(t, {
+ mocks,
+ globals,
+ ...dirs,
+ })
+ await npm.exec('doctor', ['git'])
+ t.matchSnapshot(joinedOutput(), 'output')
+ t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
+ })
+
+ t.test('permissions - not windows', async t => {
+ const { joinedOutput, logs, npm } = await loadMockNpm(t, {
+ mocks,
+ globals,
+ ...dirs,
+ })
+ await npm.exec('doctor', ['permissions'])
+ t.matchSnapshot(joinedOutput(), 'output')
+ t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
+ })
+
+ t.test('cache', async t => {
+ const { joinedOutput, logs, npm } = await loadMockNpm(t, {
+ mocks,
+ globals,
+ ...dirs,
+ })
+ await npm.exec('doctor', ['cache'])
+ t.matchSnapshot(joinedOutput(), 'output')
+ t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
+ })
+
+ t.test('permissions - windows', async t => {
+ const { joinedOutput, logs, npm } = await loadMockNpm(t, {
+ mocks,
+ globals: (context) => {
+ const g = globals(context)
+ return {
+ ...g,
+ process: {
+ ...g.process,
+ platform: 'win32',
+ },
+ }
+ },
+ prefixDir: {},
+ globalPrefixDir: {},
+ })
+ await npm.exec('doctor', ['permissions'])
+ t.matchSnapshot(joinedOutput(), 'output')
+ t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
+ })
+
+ t.test('invalid environment', async t => {
+ const { joinedOutput, logs, npm } = await loadMockNpm(t, {
+ mocks,
+ globals: (context) => {
+ const g = globals(context)
+ return {
+ ...g,
+ process: {
+ ...g.process,
+ 'env.PATH': '/nope',
+ },
+ }
+ },
+ prefixDir: {},
+ globalPrefixDir: {},
+ })
+ await t.rejects(npm.exec('doctor', ['environment']))
+ t.matchSnapshot(joinedOutput(), 'output')
+ t.matchSnapshot({ info: logs.info, warn: logs.warn, error: logs.error }, 'logs')
+ })
+
+ t.end()
+})