Skip to content

Commit 56fd9ba

Browse files
committed
test: check for available port
1 parent f7308c1 commit 56fd9ba

File tree

12 files changed

+154
-65
lines changed

12 files changed

+154
-65
lines changed

package-lock.json

Lines changed: 64 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@
112112
"ora": "5.4.0",
113113
"os-name": "^5.1.0",
114114
"p-map": "^4.0.0",
115+
"portfinder": "^1.0.38",
115116
"proxy-from-env": "^1.0.0",
116117
"rimraf": "^2.6.3",
117118
"semver": "^6.0.0",

test/jest/acceptance/snyk-sbom/all-projects.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { createProjectFromWorkspace } from '../../util/createProject';
22
import { runSnykCLI } from '../../util/runSnykCLI';
33
import { fakeServer } from '../../../acceptance/fake-server';
4+
import { getAvailableServerPort } from '../../util/getServerPort';
45

56
jest.setTimeout(1000 * 60 * 5);
67

78
describe('snyk sbom --all-projects (mocked server only)', () => {
89
let server;
910
let env: Record<string, string>;
1011

11-
beforeAll((done) => {
12-
const port = process.env.PORT || process.env.SNYK_PORT || '58585';
12+
beforeAll(async () => {
13+
const port = await getAvailableServerPort(process);
1314
const baseApi = '/api/v1';
1415
env = {
1516
...process.env,
@@ -19,9 +20,7 @@ describe('snyk sbom --all-projects (mocked server only)', () => {
1920
SNYK_DISABLE_ANALYTICS: '1',
2021
};
2122
server = fakeServer(baseApi, env.SNYK_TOKEN);
22-
server.listen(port, () => {
23-
done();
24-
});
23+
await server.listenPromise(port);
2524
});
2625

2726
afterEach(() => {

test/jest/acceptance/snyk-sbom/golang-sboms.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { createProjectFromWorkspace } from '../../util/createProject';
22
import { runSnykCLI } from '../../util/runSnykCLI';
33
import { FakeServer, fakeServer } from '../../../acceptance/fake-server';
4+
import { getAvailableServerPort } from '../../util/getServerPort';
45

56
jest.setTimeout(1000 * 60 * 5);
67

78
describe('golang sboms (mocked server only)', () => {
89
let server: FakeServer;
910
let env: Record<string, string>;
1011

11-
beforeAll((done) => {
12-
const port = process.env.PORT || process.env.SNYK_PORT || '60213';
12+
beforeAll(async () => {
13+
const port = await getAvailableServerPort(process);
1314
const baseApi = '/api/v1';
1415
env = {
1516
...process.env,
@@ -19,9 +20,7 @@ describe('golang sboms (mocked server only)', () => {
1920
SNYK_DISABLE_ANALYTICS: '1',
2021
};
2122
server = fakeServer(baseApi, env.SNYK_TOKEN);
22-
server.listen(port, () => {
23-
done();
24-
});
23+
await server.listenPromise(port);
2524
});
2625

2726
afterEach(() => {

test/jest/acceptance/snyk-sbom/gradle-options.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fakeServer } from '../../../acceptance/fake-server';
22
import { isWindowsOperatingSystem, testIf } from '../../../utils';
3+
import { getAvailableServerPort } from '../../util/getServerPort';
34
import { runSnykSbomCliCycloneDxJsonForFixture } from './common';
45

56
jest.setTimeout(1000 * 60 * 5);
@@ -8,8 +9,8 @@ describe('snyk sbom: gradle options (mocked server only)', () => {
89
let server;
910
let env: Record<string, string>;
1011

11-
beforeAll((done) => {
12-
const port = process.env.PORT || process.env.SNYK_PORT || '58586';
12+
beforeAll(async () => {
13+
const port = await getAvailableServerPort(process);
1314
const baseApi = '/api/v1';
1415
env = {
1516
...process.env,
@@ -19,9 +20,7 @@ describe('snyk sbom: gradle options (mocked server only)', () => {
1920
SNYK_DISABLE_ANALYTICS: '1',
2021
};
2122
server = fakeServer(baseApi, env.SNYK_TOKEN);
22-
server.listen(port, () => {
23-
done();
24-
});
23+
await server.listenPromise(port);
2524
});
2625

2726
afterEach(() => {

test/jest/acceptance/snyk-sbom/maven-options.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { fakeServer } from '../../../acceptance/fake-server';
22
import { runSnykSbomCliCycloneDxJsonForFixture } from './common';
33
import { createProjectFromFixture } from '../../util/createProject';
44
import { runSnykCLI } from '../../util/runSnykCLI';
5+
import { getServerPort } from '../../util/getServerPort';
56

67
jest.setTimeout(1000 * 60 * 5);
78

@@ -10,7 +11,7 @@ describe('snyk sbom: maven options (mocked server only)', () => {
1011
let env: Record<string, string>;
1112

1213
beforeAll((done) => {
13-
const port = process.env.PORT || process.env.SNYK_PORT || '58587';
14+
const port = getServerPort(process);
1415
const baseApi = '/api/v1';
1516
env = {
1617
...process.env,

test/jest/acceptance/snyk-sbom/npm-options.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { fakeServer } from '../../../acceptance/fake-server';
22
import { createProjectFromWorkspace } from '../../util/createProject';
3+
import { getAvailableServerPort } from '../../util/getServerPort';
34
import { runSnykCLI } from '../../util/runSnykCLI';
45

56
jest.setTimeout(1000 * 60 * 5);
@@ -8,8 +9,8 @@ describe('snyk sbom: npm options (mocked server only)', () => {
89
let server;
910
let env: Record<string, string>;
1011

11-
beforeAll((done) => {
12-
const port = process.env.PORT || process.env.SNYK_PORT || '58584';
12+
beforeAll(async () => {
13+
const port = await getAvailableServerPort(process);
1314
const baseApi = '/api/v1';
1415
env = {
1516
...process.env,
@@ -19,9 +20,7 @@ describe('snyk sbom: npm options (mocked server only)', () => {
1920
SNYK_DISABLE_ANALYTICS: '1',
2021
};
2122
server = fakeServer(baseApi, env.SNYK_TOKEN);
22-
server.listen(port, () => {
23-
done();
24-
});
23+
await server.listenPromise(port);
2524
});
2625

2726
afterEach(() => {

test/jest/acceptance/snyk-sbom/nuget-options.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import * as path from 'path';
33
import { fakeServer } from '../../../acceptance/fake-server';
44
import { createProjectFromFixture } from '../../util/createProject';
55
import { runSnykCLI } from '../../util/runSnykCLI';
6+
import { getServerPort } from '../../util/getServerPort';
67

78
jest.setTimeout(1000 * 60 * 5);
89

@@ -11,7 +12,7 @@ describe('snyk sbom: nuget options (mocked server only)', () => {
1112
let env: Record<string, string>;
1213

1314
beforeAll((done) => {
14-
const port = process.env.PORT || process.env.SNYK_PORT || '58584';
15+
const port = getServerPort(process);
1516
const baseApi = '/api/v1';
1617
env = {
1718
...process.env,

test/jest/acceptance/snyk-sbom/pip-options.spec.ts

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,27 @@ import { createProjectFromWorkspace } from '../../util/createProject';
44
import { runSnykCLI } from '../../util/runSnykCLI';
55
import { fakeServer } from '../../../acceptance/fake-server';
66
import { isWindowsOperatingSystem } from '../../../utils';
7+
import { getAvailableServerPort } from '../../util/getServerPort';
78

89
jest.setTimeout(1000 * 60 * 5);
910

1011
describe('snyk sbom --command (mocked server only)', () => {
1112
let server;
1213
let env: Record<string, string>;
1314

14-
beforeAll(
15-
() =>
16-
new Promise((res) => {
17-
const port = process.env.PORT || process.env.SNYK_PORT || '58588';
18-
const baseApi = '/api/v1';
19-
env = {
20-
...process.env,
21-
SNYK_API: 'http://localhost:' + port + baseApi,
22-
SNYK_HOST: 'http://localhost:' + port,
23-
SNYK_TOKEN: '123456789',
24-
SNYK_DISABLE_ANALYTICS: '1',
25-
};
26-
server = fakeServer(baseApi, env.SNYK_TOKEN);
27-
server.listen(port, res);
28-
}),
29-
);
15+
beforeAll(async () => {
16+
const port = await getAvailableServerPort(process);
17+
const baseApi = '/api/v1';
18+
env = {
19+
...process.env,
20+
SNYK_API: 'http://localhost:' + port + baseApi,
21+
SNYK_HOST: 'http://localhost:' + port,
22+
SNYK_TOKEN: '123456789',
23+
SNYK_DISABLE_ANALYTICS: '1',
24+
};
25+
server = fakeServer(baseApi, env.SNYK_TOKEN);
26+
await server.listenPromise(port);
27+
});
3028

3129
afterEach(() => {
3230
jest.resetAllMocks();

test/jest/acceptance/snyk-sbom/sbom.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@ import {
66
} from '../../util/createProject';
77
import { runSnykCLI } from '../../util/runSnykCLI';
88
import { fakeServer } from '../../../acceptance/fake-server';
9+
import { getAvailableServerPort } from '../../util/getServerPort';
910

1011
jest.setTimeout(1000 * 60 * 5);
1112

1213
describe('snyk sbom (mocked server only)', () => {
1314
let server;
1415
let env: Record<string, string>;
1516

16-
beforeAll((done) => {
17-
const port = process.env.PORT || process.env.SNYK_PORT || '58584';
17+
beforeAll(async () => {
18+
const port = await getAvailableServerPort(process);
1819
const baseApi = '/api/v1';
1920
env = {
2021
...process.env,
@@ -24,9 +25,7 @@ describe('snyk sbom (mocked server only)', () => {
2425
SNYK_DISABLE_ANALYTICS: '1',
2526
};
2627
server = fakeServer(baseApi, env.SNYK_TOKEN);
27-
server.listen(port, () => {
28-
done();
29-
});
28+
await server.listenPromise(port);
3029
});
3130

3231
afterEach(() => {

0 commit comments

Comments
 (0)