0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-23 22:27:34 -05:00
verdaccio/packages/plugins/audit/tests/audit.spec.ts

102 lines
3.3 KiB
TypeScript
Raw Normal View History

import express from 'express';
import nock from 'nock';
import { join } from 'path';
import supertest from 'supertest';
import { Config, parseConfigFile } from '@verdaccio/config';
import { logger, setup } from '@verdaccio/logger';
import { HTTP_STATUS } from '../../local-storage/node_modules/@verdaccio/core/build';
import ProxyAudit, { ConfigAudit } from '../src/index';
setup({});
const auditConfig: ConfigAudit = {
enabled: true,
} as ConfigAudit;
describe('Audit plugin', () => {
test('should test audit', () => {
const audit = new ProxyAudit(auditConfig, {
logger,
config: new Config(parseConfigFile(join(__dirname, 'config.yaml'))),
});
expect(audit).toBeDefined();
});
test('should test audit with configuration', () => {
const config = { strict_ssl: false } as ConfigAudit;
const audit = new ProxyAudit(auditConfig, { logger, config: config });
expect(audit).toBeDefined();
// expect(audit.strict_ssl).toBeFalsy();
});
test('should handle /-/npm/v1/security/audits/quick', async () => {
nock('https://registry.npmjs.org')
.post('/-/npm/v1/security/audits/quick')
.reply(200, { foo: 'someData' });
const config = { strict_ssl: false } as ConfigAudit;
const audit = new ProxyAudit(auditConfig, { logger, config: config });
const app = express();
audit.register_middlewares(app, {
// @ts-ignore
config: {
https_proxy: '',
http_proxy: '',
},
});
await supertest(app).post('/-/npm/v1/security/audits/quick').expect(HTTP_STATUS.OK);
});
test('should handle /-/npm/v1/security/audits/bulk', async () => {
nock('https://registry.npmjs.org')
.post('/-/npm/v1/security/advisories/bulk')
.reply(200, { foo: 'someData' });
const config = { strict_ssl: false } as ConfigAudit;
const audit = new ProxyAudit(auditConfig, { logger, config: config });
const app = express();
audit.register_middlewares(app, {
// @ts-ignore
config: {
https_proxy: '',
http_proxy: '',
},
});
await supertest(app).post('/-/npm/v1/security/advisories/bulk').expect(HTTP_STATUS.OK);
});
test('should handle /-/npm/v1/security/audits', async () => {
nock('https://registry.npmjs.org')
.post('/-/npm/v1/security/audits')
.reply(200, { foo: 'someData' });
const config = { strict_ssl: false } as ConfigAudit;
const audit = new ProxyAudit(auditConfig, { logger, config: config });
const app = express();
audit.register_middlewares(app, {
// @ts-ignore
config: {
https_proxy: '',
http_proxy: '',
},
});
await supertest(app).post('/-/npm/v1/security/audits').expect(HTTP_STATUS.OK);
});
test('should handle proxy', async () => {
nock('https://registry.npmjs.org')
.post('/-/npm/v1/security/audits/quick')
.reply(200, { foo: 'someData' });
const config = { strict_ssl: false } as ConfigAudit;
const audit = new ProxyAudit(auditConfig, { logger, config: config });
const app = express();
audit.register_middlewares(app, {
// @ts-ignore
config: {
https_proxy: 'https://registry.proxy.org',
http_proxy: '',
},
});
await supertest(app).post('/-/npm/v1/security/audits/quick').expect(HTTP_STATUS.OK);
});
});