1
0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-11-13 03:35:52 +01:00
verdaccio/packages/node-api/test/parseAddress.spec.ts

51 lines
1.7 KiB
TypeScript
Raw Normal View History

2018-06-28 18:33:37 +02:00
import _ from 'lodash';
import { DEFAULT_DOMAIN, DEFAULT_PORT, parseAddress } from '../src/cli-utils';
2017-11-01 17:47:20 +01:00
describe('Parse listen address', () => {
const useCases: any[] = [];
2018-06-28 22:17:38 +02:00
function addTest(uri: string, proto: string | null, host?: string, port?: string) {
useCases.push([uri, proto, host, port]);
2015-03-28 16:03:36 +01:00
}
2018-06-28 22:17:38 +02:00
addTest(DEFAULT_PORT, 'http', DEFAULT_DOMAIN, DEFAULT_PORT);
addTest(':4873', 'http', DEFAULT_DOMAIN, DEFAULT_PORT);
addTest('blah:4873', 'http', 'blah', DEFAULT_PORT);
addTest('http://:4873', 'http', DEFAULT_DOMAIN, DEFAULT_PORT);
addTest('https::4873', 'https', DEFAULT_DOMAIN, DEFAULT_PORT);
addTest('https:blah:4873', 'https', 'blah', DEFAULT_PORT);
addTest('https://blah:4873/', 'https', 'blah', DEFAULT_PORT);
addTest('[::1]:4873', 'http', '::1', DEFAULT_PORT);
addTest('https:[::1]:4873', 'https', '::1', DEFAULT_PORT);
2015-03-28 16:03:36 +01:00
2017-04-19 21:15:28 +02:00
addTest('unix:/tmp/foo.sock', 'http', '/tmp/foo.sock');
addTest('http:unix:foo.sock', 'http', 'foo.sock');
addTest('https://unix:foo.sock', 'https', 'foo.sock');
2018-06-28 22:17:38 +02:00
addTest('https://unix:foo.sock:34', 'https', 'foo.sock:34');
addTest('http://foo.sock:34', 'http', 'foo.sock', '34');
2017-04-19 21:15:28 +02:00
addTest('blah', null);
addTest('blah://4873', null);
addTest('https://blah:4873///', null);
addTest('unix:1234', 'http', 'unix', '1234'); // not unix socket
test.each(useCases)(`should parse (%s - %s - %s - %s)`, (uri, proto, host, port) => {
const parsed = parseAddress(uri);
if (_.isNull(proto)) {
expect(parsed).toBeNull();
} else if (port) {
expect(parsed).toEqual({
proto,
host,
2020-03-03 23:59:19 +01:00
port,
});
} else {
expect(parsed).toEqual({
proto,
2020-03-03 23:59:19 +01:00
path: host,
});
}
});
2017-04-19 21:15:28 +02:00
});