0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-23 22:27:34 -05:00
verdaccio/packages/server/test/package-access/index.spec.ts
Juan Picado 154b2ecd34
refactor: remove @verdaccio/commons-api in favor @verdaccio/core and remove duplication (#2455)
* migrate api package

* migrate auth

* migrate config

* refactor: remove @verdaccio/commons-api in favor @verdaccio/core

* fix lint

* relocate pkg

* relocate pkg

* fix tsconfig
2021-09-26 00:08:00 +02:00

100 lines
2.7 KiB
TypeScript

import path from 'path';
import request from 'supertest';
import { setup, logger } from '@verdaccio/logger';
setup([]);
import { HEADERS, HTTP_STATUS } from '@verdaccio/core';
import { generateRamdonStorage, mockServer, configExample, DOMAIN_SERVERS } from '@verdaccio/mock';
import endPointAPI from '../../src';
describe('api with no limited access configuration', () => {
let app;
let mockRegistry;
const store = generateRamdonStorage();
jest.setTimeout(10000);
beforeAll(async () => {
const mockServerPort = 55530;
const configForTest = configExample(
{
config_path: store,
uplinks: {
remote: {
url: `http://${DOMAIN_SERVERS}:${mockServerPort}`,
},
},
},
'pkg.access.yaml',
__dirname
);
app = await endPointAPI(configForTest);
const binPath = require.resolve('verdaccio/bin/verdaccio');
const storePath = path.join(__dirname, '/mock/store');
mockRegistry = await mockServer(mockServerPort, { storePath, silence: true }).init(binPath);
});
afterAll(function () {
const [registry, pid] = mockRegistry;
registry.stop();
logger.info(`registry ${pid} has been stopped`);
});
describe('test proxy packages partially restricted', () => {
test('should test fails on fetch endpoint /-/not-found', () => {
return new Promise((resolve, reject) => {
request(app)
// @ts-ignore
.get('/not-found-for-sure')
.set(HEADERS.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HEADERS.CONTENT_TYPE, /json/)
.expect(HTTP_STATUS.NOT_FOUND)
.end(function (err) {
if (err) {
return reject(err);
}
resolve(null);
});
});
});
test('should test fetch endpoint /-/jquery', () => {
return new Promise((resolve, reject) => {
request(app)
// @ts-ignore
.get('/jquery')
.set(HEADERS.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HEADERS.CONTENT_TYPE, /json/)
.expect(HTTP_STATUS.OK)
.end(function (err) {
if (err) {
return reject(err);
}
resolve(null);
});
});
});
test('should success on fetch endpoint /-/vue', () => {
return new Promise((resolve, reject) => {
request(app)
// @ts-ignore
.get('/vue')
.set(HEADERS.CONTENT_TYPE, HEADERS.JSON_CHARSET)
.expect(HEADERS.CONTENT_TYPE, /json/)
.expect(HTTP_STATUS.OK)
.end(function (err) {
if (err) {
return reject(err);
}
resolve(null);
});
});
});
});
});