%PDF- %PDF-
Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/npm/test/lib/commands/ |
Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/npm/test/lib/commands/search.js |
const t = require('tap') const { load: loadMockNpm } = require('../../fixtures/mock-npm.js') const MockRegistry = require('@npmcli/mock-registry') const libnpmsearchResultFixture = require('../../fixtures/libnpmsearch-stream-result.js') t.test('no args', async t => { const { npm } = await loadMockNpm(t) await t.rejects( npm.exec('search', []), /search must be called with arguments/, 'should throw usage instructions' ) }) t.test('search <name> text', async t => { const { npm, joinedOutput } = await loadMockNpm(t) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: libnpmsearchResultFixture }) await npm.exec('search', ['libnpm']) t.matchSnapshot(joinedOutput(), 'should have expected search results') }) t.test('search <name> --json', async t => { const { npm, joinedOutput } = await loadMockNpm(t, { config: { json: true } }) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: libnpmsearchResultFixture }) await npm.exec('search', ['libnpm']) t.same( JSON.parse(joinedOutput()), libnpmsearchResultFixture, 'should have expected search results as json' ) }) t.test('search <name> --parseable', async t => { const { npm, joinedOutput } = await loadMockNpm(t, { config: { parseable: true } }) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: libnpmsearchResultFixture }) await npm.exec('search', ['libnpm']) t.matchSnapshot(joinedOutput(), 'should have expected search results as parseable') }) t.test('search <name> --color', async t => { const { npm, joinedOutput } = await loadMockNpm(t, { config: { color: 'always' } }) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: libnpmsearchResultFixture }) await npm.exec('search', ['libnpm']) t.matchSnapshot(joinedOutput(), 'should have expected search results with color') }) t.test('search /<name>/--color', async t => { const { npm, joinedOutput } = await loadMockNpm(t, { config: { color: 'always' } }) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: libnpmsearchResultFixture }) await npm.exec('search', ['/libnpm/']) t.matchSnapshot(joinedOutput(), 'should have expected search results with color') }) t.test('search <name>', async t => { const { npm, joinedOutput } = await loadMockNpm(t) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: [{ name: 'foo', scope: 'unscoped', version: '1.0.0', description: '', keywords: [], date: null, author: { name: 'Foo', email: 'foo@npmjs.com' }, publisher: { name: 'Foo', email: 'foo@npmjs.com' }, maintainers: [ { username: 'foo', email: 'foo@npmjs.com' }, ], }, { name: 'libnpmversion', scope: 'unscoped', version: '1.0.0', description: '', keywords: [], date: null, author: { name: 'Foo', email: 'foo@npmjs.com' }, publisher: { name: 'Foo', email: 'foo@npmjs.com' }, maintainers: [ { username: 'foo', email: 'foo@npmjs.com' }, ], }] }) await npm.exec('search', ['foo']) t.matchSnapshot(joinedOutput(), 'should have filtered expected search results') }) t.test('empty search results', async t => { const { npm, joinedOutput } = await loadMockNpm(t) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: [] }) await npm.exec('search', ['foo']) t.matchSnapshot(joinedOutput(), 'should have expected search results') }) t.test('empty search results --json', async t => { const { npm, joinedOutput } = await loadMockNpm(t, { config: { json: true } }) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: [] }) await npm.exec('search', ['foo']) t.equal(joinedOutput(), '\n[]\n', 'should have expected empty square brackets') }) t.test('search api response error', async t => { const { npm } = await loadMockNpm(t) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ error: 'ERR' }) await t.rejects( npm.exec('search', ['foo']), /ERR/, 'should throw response error' ) }) t.test('search exclude string', async t => { const { npm, joinedOutput } = await loadMockNpm(t, { config: { searchexclude: 'libnpmversion' } }) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: libnpmsearchResultFixture }) await npm.exec('search', ['libnpm']) t.matchSnapshot(joinedOutput(), 'results should not have libnpmversion') }) t.test('search exclude username with upper case letters', async t => { const { npm, joinedOutput } = await loadMockNpm(t, { config: { searchexclude: 'NLF' } }) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: libnpmsearchResultFixture }) await npm.exec('search', ['libnpm']) t.matchSnapshot(joinedOutput(), 'results should not have nlf') }) t.test('search exclude regex', async t => { const { npm, joinedOutput } = await loadMockNpm(t, { config: { searchexclude: '/version/' } }) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: libnpmsearchResultFixture }) await npm.exec('search', ['libnpm']) t.matchSnapshot(joinedOutput(), 'results should not have libnpmversion') }) t.test('search exclude forward slash', async t => { const { npm, joinedOutput } = await loadMockNpm(t, { config: { searchexclude: '/version' } }) const registry = new MockRegistry({ tap: t, registry: npm.config.get('registry'), }) registry.search({ results: libnpmsearchResultFixture }) await npm.exec('search', ['libnpm']) t.matchSnapshot(joinedOutput(), 'results should not have libnpmversion') })