diff options
author | npm CLI robot <npm-cli+bot@github.com> | 2022-12-09 08:38:13 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-09 13:38:13 +0000 |
commit | 7d80ca36833905d315560fc84f7245a3684d5189 (patch) | |
tree | b805678c47652f7009dbd0c5246699f482eca91d /deps/npm/test | |
parent | 5fe07950411a119cd729d1eec326ca6dae107520 (diff) | |
download | node-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.js | 204 |
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() +}) |