mirror of
https://github.com/verdaccio/verdaccio.git
synced 2025-02-17 23:45:29 -05:00
* fix: correctly check the keepAliveTimeout value, fixes #1352 * test: check keepAliveTimeout configurations using the CLI
This commit is contained in:
parent
e40083a6be
commit
a92bd5f633
5 changed files with 81 additions and 1 deletions
2
src/lib/bootstrap.js
vendored
2
src/lib/bootstrap.js
vendored
|
@ -48,7 +48,7 @@ function startVerdaccio(config: any, cliListen: string, configPath: string, pkgV
|
||||||
// http
|
// http
|
||||||
webServer = http.createServer(app);
|
webServer = http.createServer(app);
|
||||||
}
|
}
|
||||||
if (config.server && config.server.keepAliveTimeout) {
|
if (config.server && typeof config.server.keepAliveTimeout !== 'undefined' && config.server.keepAliveTimeout !== 'null') {
|
||||||
// $FlowFixMe library definition for node is not up to date (doesn't contain recent 8.0 changes)
|
// $FlowFixMe library definition for node is not up to date (doesn't contain recent 8.0 changes)
|
||||||
webServer.keepAliveTimeout = config.server.keepAliveTimeout * 1000;
|
webServer.keepAliveTimeout = config.server.keepAliveTimeout * 1000;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import startServer from '../../../src/index';
|
||||||
import config from '../partials/config/index';
|
import config from '../partials/config/index';
|
||||||
import {DEFAULT_DOMAIN, DEFAULT_PORT, DEFAULT_PROTOCOL} from '../../../src/lib/constants';
|
import {DEFAULT_DOMAIN, DEFAULT_PORT, DEFAULT_PROTOCOL} from '../../../src/lib/constants';
|
||||||
import {getListListenAddresses} from '../../../src/lib/cli/utils';
|
import {getListListenAddresses} from '../../../src/lib/cli/utils';
|
||||||
|
import {parseConfigFile} from '../../../src/lib/utils';
|
||||||
|
|
||||||
const logger = require('../../../src/lib/logger');
|
const logger = require('../../../src/lib/logger');
|
||||||
|
|
||||||
|
@ -20,6 +21,10 @@ jest.mock('../../../src/lib/logger', () => ({
|
||||||
|
|
||||||
describe('startServer via API', () => {
|
describe('startServer via API', () => {
|
||||||
|
|
||||||
|
const parseConfigurationFile = (name) => {
|
||||||
|
return parseConfigFile(path.join(__dirname, `../partials/config/yaml/${name}.yaml`));
|
||||||
|
};
|
||||||
|
|
||||||
describe('startServer launcher', () => {
|
describe('startServer launcher', () => {
|
||||||
test('should provide all HTTP server data', async (done) => {
|
test('should provide all HTTP server data', async (done) => {
|
||||||
const store = path.join(__dirname, 'partials/store');
|
const store = path.join(__dirname, 'partials/store');
|
||||||
|
@ -42,6 +47,75 @@ describe('startServer via API', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should set keepAliveTimeout to 0 seconds', async (done) => {
|
||||||
|
const store = path.join(__dirname, 'partials/store');
|
||||||
|
const serverName = 'verdaccio-test';
|
||||||
|
const version = '1.0.0';
|
||||||
|
const port = '6100';
|
||||||
|
|
||||||
|
await startServer(config(parseConfigurationFile('server/keepalivetimeout-0')), port, store, version, serverName,
|
||||||
|
(webServer, addrs, pkgName, pkgVersion) => {
|
||||||
|
expect(webServer).toBeDefined();
|
||||||
|
expect(webServer.keepAliveTimeout).toBeDefined();
|
||||||
|
expect(webServer.keepAliveTimeout).toBe(0);
|
||||||
|
expect(addrs).toBeDefined();
|
||||||
|
expect(addrs.proto).toBe(DEFAULT_PROTOCOL);
|
||||||
|
expect(addrs.host).toBe(DEFAULT_DOMAIN);
|
||||||
|
expect(addrs.port).toBe(port);
|
||||||
|
expect(pkgName).toBeDefined();
|
||||||
|
expect(pkgVersion).toBeDefined();
|
||||||
|
expect(pkgVersion).toBe(version);
|
||||||
|
expect(pkgName).toBe(serverName);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should set keepAliveTimeout to 60 seconds', async (done) => {
|
||||||
|
const store = path.join(__dirname, 'partials/store');
|
||||||
|
const serverName = 'verdaccio-test';
|
||||||
|
const version = '1.0.0';
|
||||||
|
const port = '6200';
|
||||||
|
|
||||||
|
await startServer(config(parseConfigurationFile('server/keepalivetimeout-60')), port, store, version, serverName,
|
||||||
|
(webServer, addrs, pkgName, pkgVersion) => {
|
||||||
|
expect(webServer).toBeDefined();
|
||||||
|
expect(webServer.keepAliveTimeout).toBeDefined();
|
||||||
|
expect(webServer.keepAliveTimeout).toBe(60000);
|
||||||
|
expect(addrs).toBeDefined();
|
||||||
|
expect(addrs.proto).toBe(DEFAULT_PROTOCOL);
|
||||||
|
expect(addrs.host).toBe(DEFAULT_DOMAIN);
|
||||||
|
expect(addrs.port).toBe(port);
|
||||||
|
expect(pkgName).toBeDefined();
|
||||||
|
expect(pkgVersion).toBeDefined();
|
||||||
|
expect(pkgVersion).toBe(version);
|
||||||
|
expect(pkgName).toBe(serverName);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should set keepAliveTimeout to 5 seconds per default', async (done) => {
|
||||||
|
const store = path.join(__dirname, 'partials/store');
|
||||||
|
const serverName = 'verdaccio-test';
|
||||||
|
const version = '1.0.0';
|
||||||
|
const port = '6300';
|
||||||
|
|
||||||
|
await startServer(config(parseConfigurationFile('server/keepalivetimeout-undefined')), port, store, version, serverName,
|
||||||
|
(webServer, addrs, pkgName, pkgVersion) => {
|
||||||
|
expect(webServer).toBeDefined();
|
||||||
|
expect(webServer.keepAliveTimeout).toBeDefined();
|
||||||
|
expect(webServer.keepAliveTimeout).toBe(5000);
|
||||||
|
expect(addrs).toBeDefined();
|
||||||
|
expect(addrs.proto).toBe(DEFAULT_PROTOCOL);
|
||||||
|
expect(addrs.host).toBe(DEFAULT_DOMAIN);
|
||||||
|
expect(addrs.port).toBe(port);
|
||||||
|
expect(pkgName).toBeDefined();
|
||||||
|
expect(pkgVersion).toBeDefined();
|
||||||
|
expect(pkgVersion).toBe(version);
|
||||||
|
expect(pkgName).toBe(serverName);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
test('should provide all HTTPS server fails', async (done) => {
|
test('should provide all HTTPS server fails', async (done) => {
|
||||||
const store = path.join(__dirname, 'partials/store');
|
const store = path.join(__dirname, 'partials/store');
|
||||||
const serverName = 'verdaccio-test';
|
const serverName = 'verdaccio-test';
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
server:
|
||||||
|
keepAliveTimeout: 0
|
|
@ -0,0 +1,2 @@
|
||||||
|
server:
|
||||||
|
keepAliveTimeout: 60
|
|
@ -0,0 +1,2 @@
|
||||||
|
server:
|
||||||
|
foo: "bar"
|
Loading…
Add table
Reference in a new issue