Skip to content

Commit ef608d6

Browse files
authored
test: remove get-port usage in core tests and appsec (#6060)
* remove get-port usage in core tests and a few more * remove get-port usage from appsec plugin tests * remove explicit hostname from appsec express test * remove explicit hostname from appsec request helper test * make port explicit and add comment to explain why an arbitrary port is fine
1 parent b4edcab commit ef608d6

File tree

11 files changed

+103
-154
lines changed

11 files changed

+103
-154
lines changed

packages/datadog-plugin-fetch/test/integration-test/client.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ describe('esm', () => {
1616

1717
before(async function () {
1818
this.timeout(50000)
19-
sandbox = await createSandbox(['get-port'], false, [
19+
sandbox = await createSandbox([], false, [
2020
'./packages/datadog-plugin-fetch/test/integration-test/*'])
2121
})
2222

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import 'dd-trace/init.js'
2-
import getPort from 'get-port'
32

4-
const port = await getPort()
5-
6-
global.fetch(`http://localhost:${port}/foo`)
3+
// An arbitrary port is used here as we just need a request even if it fails.
4+
global.fetch('http://localhost:55555/foo')
75
.then((response) => {})
86
.then((data) => {})
97
.catch((err) => {})

packages/datadog-plugin-net/test/integration-test/client.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ describe('esm', () => {
1515

1616
before(async function () {
1717
this.timeout(20000)
18-
sandbox = await createSandbox(['net', 'get-port'], false, [
18+
sandbox = await createSandbox(['net'], false, [
1919
'./packages/datadog-plugin-net/test/integration-test/*'])
2020
})
2121

packages/datadog-plugin-net/test/integration-test/server.mjs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import 'dd-trace/init.js'
22
import net from 'net'
3-
import getPort from 'get-port'
43

5-
const port = await getPort()
6-
7-
const client = net.createConnection(port, () => {})
4+
const client = net.createConnection(0, () => {})
85

96
client.on('data', (data) => {})
107

packages/dd-trace/test/appsec/attacker-fingerprinting.fastify.plugin.spec.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
const Axios = require('axios')
44
const { assert } = require('chai')
5-
const getPort = require('get-port')
65
const path = require('path')
76

87
const agent = require('../plugins/agent')
@@ -26,13 +25,12 @@ withVersions('fastify', 'fastify', fastifyVersion => {
2625
reply.send('DONE')
2726
})
2827

29-
getPort().then((port) => {
30-
app.listen({ port }, () => {
31-
axios = Axios.create({ baseURL: `http://localhost:${port}` })
32-
done()
33-
})
34-
server = app.server
28+
app.listen({ port: 0 }, () => {
29+
const port = server.address().port
30+
axios = Axios.create({ baseURL: `http://localhost:${port}` })
31+
done()
3532
})
33+
server = app.server
3634
})
3735

3836
after(() => {

packages/dd-trace/test/appsec/index.express.plugin.spec.js

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
const Axios = require('axios')
44
const { assert } = require('chai')
5-
const getPort = require('get-port')
65
const path = require('path')
76
const agent = require('../plugins/agent')
87
const appsec = require('../../src/appsec')
@@ -46,11 +45,10 @@ withVersions('express', 'express', version => {
4645

4746
app.param('callbackedParameter', paramCallbackSpy)
4847

49-
getPort().then((port) => {
50-
server = app.listen(port, () => {
51-
axios = Axios.create({ baseURL: `http://localhost:${port}` })
52-
done()
53-
})
48+
server = app.listen(0, () => {
49+
const port = server.address().port
50+
axios = Axios.create({ baseURL: `http://localhost:${port}` })
51+
done()
5452
})
5553
})
5654

@@ -196,11 +194,10 @@ withVersions('express', 'express', version => {
196194
res.end('DONE')
197195
})
198196

199-
getPort().then((port) => {
200-
server = app.listen(port, () => {
201-
axios = Axios.create({ baseURL: `http://localhost:${port}` })
202-
done()
203-
})
197+
server = app.listen(0, () => {
198+
const port = server.address().port
199+
axios = Axios.create({ baseURL: `http://localhost:${port}` })
200+
done()
204201
})
205202
})
206203

@@ -274,11 +271,10 @@ withVersions('express', 'express', version => {
274271
res.json({ jsonResKey: 'jsonResValue' })
275272
})
276273

277-
getPort().then((port) => {
278-
server = app.listen(port, () => {
279-
axios = Axios.create({ baseURL: `http://localhost:${port}` })
280-
done()
281-
})
274+
server = app.listen(0, () => {
275+
const port = server.address().port
276+
axios = Axios.create({ baseURL: `http://localhost:${port}` })
277+
done()
282278
})
283279
})
284280

packages/dd-trace/test/appsec/index.fastify.plugin.spec.js

Lines changed: 31 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
const Axios = require('axios')
44
const { assert } = require('chai')
5-
const getPort = require('get-port')
65
const path = require('path')
76
const zlib = require('zlib')
87
const fs = require('node:fs')
@@ -29,13 +28,12 @@ withVersions('fastify', 'fastify', '>=2', version => {
2928
reply.send('DONE')
3029
})
3130

32-
getPort().then((port) => {
33-
app.listen({ port }, () => {
34-
axios = Axios.create({ baseURL: `http://localhost:${port}` })
35-
done()
36-
})
37-
server = app.server
31+
app.listen({ port: 0 }, () => {
32+
const port = server.address().port
33+
axios = Axios.create({ baseURL: `http://localhost:${port}` })
34+
done()
3835
})
36+
server = app.server
3937
})
4038

4139
after(() => {
@@ -95,13 +93,12 @@ withVersions('fastify', 'fastify', '>=2', version => {
9593
reply.send('DONE')
9694
})
9795

98-
getPort().then((port) => {
99-
app.listen({ port }, () => {
100-
axios = Axios.create({ baseURL: `http://localhost:${port}` })
101-
done()
102-
})
103-
server = app.server
96+
app.listen({ port: 0 }, () => {
97+
const port = server.address().port
98+
axios = Axios.create({ baseURL: `http://localhost:${port}` })
99+
done()
104100
})
101+
server = app.server
105102
})
106103

107104
after(() => {
@@ -205,13 +202,12 @@ withVersions('fastify', 'fastify', '>=2', version => {
205202
reply.send('DONE')
206203
})
207204

208-
getPort().then((port) => {
209-
app.listen({ port }, () => {
210-
axios = Axios.create({ baseURL: `http://localhost:${port}` })
211-
done()
212-
})
213-
server = app.server
205+
app.listen({ port: 0 }, () => {
206+
const port = server.address().port
207+
axios = Axios.create({ baseURL: `http://localhost:${port}` })
208+
done()
214209
})
210+
server = app.server
215211
})
216212

217213
after(() => {
@@ -295,13 +291,12 @@ withVersions('fastify', 'fastify', '>=2', version => {
295291
reply.send('DONE')
296292
})
297293

298-
getPort().then((port) => {
299-
app.listen({ port }, () => {
300-
axios = Axios.create({ baseURL: `http://localhost:${port}` })
301-
done()
302-
})
303-
server = app.server
294+
app.listen({ port: 0 }, () => {
295+
const port = server.address().port
296+
axios = Axios.create({ baseURL: `http://localhost:${port}` })
297+
done()
304298
})
299+
server = app.server
305300
})
306301

307302
after(() => {
@@ -478,13 +473,12 @@ withVersions('fastify', 'fastify', '>=2', version => {
478473
reply.send('DONE')
479474
})
480475

481-
getPort().then((port) => {
482-
app.listen({ port }, () => {
483-
axios = Axios.create({ baseURL: `http://localhost:${port}` })
484-
done()
485-
})
486-
server = app.server
487-
}).catch(done)
476+
app.listen({ port: 0 }, () => {
477+
const port = server.address().port
478+
axios = Axios.create({ baseURL: `http://localhost:${port}` })
479+
done()
480+
})
481+
server = app.server
488482
})
489483

490484
beforeEach(async () => {
@@ -577,13 +571,12 @@ describe('Api Security - Fastify', () => {
577571
reply.send(new Uint16Array(10))
578572
})
579573

580-
getPort().then((port) => {
581-
app.listen({ port }, () => {
582-
axios = Axios.create({ baseURL: `http://localhost:${port}` })
583-
done()
584-
})
585-
server = app.server
574+
app.listen({ port: 0 }, () => {
575+
const port = server.address().port
576+
axios = Axios.create({ baseURL: `http://localhost:${port}` })
577+
done()
586578
})
579+
server = app.server
587580
})
588581

589582
after(() => {

packages/dd-trace/test/exporters/common/request.spec.js

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
require('../../setup/tap')
44

55
const nock = require('nock')
6-
const getPort = require('get-port')
76
const http = require('http')
87
const zlib = require('zlib')
98

109
const FormData = require('../../../src/exporters/common/form-data')
1110

12-
const initHTTPServer = (port) => {
11+
const initHTTPServer = () => {
1312
return new Promise(resolve => {
1413
const sockets = []
1514
const requestListener = function (req, res) {
@@ -23,11 +22,13 @@ const initHTTPServer = (port) => {
2322

2423
server.on('connection', socket => sockets.push(socket))
2524

26-
server.listen(port, () => {
27-
resolve(() => {
25+
server.listen(0, () => {
26+
const shutdown = () => {
2827
sockets.forEach(socket => socket.end())
2928
server.close()
30-
})
29+
}
30+
shutdown.port = server.address().port
31+
resolve(shutdown)
3132
})
3233
})
3334
}
@@ -223,37 +224,33 @@ describe('request', function () {
223224
})
224225

225226
it('should be able to send concurrent requests to different hosts', function (done) {
226-
// TODO: try to simplify the setup here. I haven't been able to reproduce the
227-
// concurrent socket issue using nock
228-
Promise.all([getPort(), getPort()]).then(([port1, port2]) => {
229-
Promise.all([initHTTPServer(port1), initHTTPServer(port2)]).then(([shutdownFirst, shutdownSecond]) => {
230-
// this interval is blocking a socket for the other request
231-
const intervalId = setInterval(() => {
232-
request(Buffer.from(''), {
233-
path: '/',
234-
method: 'POST',
235-
hostname: 'localhost',
236-
protocol: 'http:',
237-
port: port1
238-
}, () => {})
239-
}, 1000)
240-
241-
setTimeout(() => {
242-
request(Buffer.from(''), {
243-
path: '/',
244-
method: 'POST',
245-
hostname: 'localhost',
246-
protocol: 'http:',
247-
port: port2
248-
}, (err, res) => {
249-
expect(res).to.equal('OK')
250-
shutdownFirst()
251-
shutdownSecond()
252-
clearInterval(intervalId)
253-
done()
254-
})
255-
}, 2000)
256-
})
227+
Promise.all([initHTTPServer(), initHTTPServer()]).then(([shutdownFirst, shutdownSecond]) => {
228+
// this interval is blocking a socket for the other request
229+
const intervalId = setInterval(() => {
230+
request(Buffer.from(''), {
231+
path: '/',
232+
method: 'POST',
233+
hostname: 'localhost',
234+
protocol: 'http:',
235+
port: shutdownFirst.port
236+
}, () => {})
237+
}, 1000)
238+
239+
setTimeout(() => {
240+
request(Buffer.from(''), {
241+
path: '/',
242+
method: 'POST',
243+
hostname: 'localhost',
244+
protocol: 'http:',
245+
port: shutdownSecond.port
246+
}, (err, res) => {
247+
expect(res).to.equal('OK')
248+
shutdownFirst()
249+
shutdownSecond()
250+
clearInterval(intervalId)
251+
done()
252+
})
253+
}, 2000)
257254
})
258255
})
259256

packages/dd-trace/test/flare.spec.js

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
const Config = require('../src/config')
44
const { channel } = require('dc-polyfill')
55
const express = require('express')
6-
const getPort = require('get-port')
76
const http = require('http')
87
const upload = require('multer')()
98
const proxyquire = require('proxyquire').noCallThru()
@@ -23,7 +22,7 @@ describe('Flare', () => {
2322
let socket
2423
let handler
2524

26-
const createServer = () => {
25+
const createServer = (done) => {
2726
const app = express()
2827

2928
app.post('/tracer_flare/v1', upload.any(), (req, res) => {
@@ -36,7 +35,10 @@ describe('Flare', () => {
3635
socket = socket_
3736
})
3837

39-
listener = server.listen(port)
38+
listener = server.listen(0, '127.0.0.1', () => {
39+
port = server.address().port
40+
done()
41+
})
4042
}
4143

4244
beforeEach(() => {
@@ -49,12 +51,10 @@ describe('Flare', () => {
4951
flare = proxyquire('../src/flare', {
5052
'../startup-log': startupLog
5153
})
52-
53-
return getPort().then(port_ => {
54-
port = port_
55-
})
5654
})
5755

56+
beforeEach(createServer)
57+
5858
beforeEach(() => {
5959
tracerConfig = new Config({
6060
url: `http://127.0.0.1:${port}`
@@ -65,8 +65,6 @@ describe('Flare', () => {
6565
hostname: 'myhostname',
6666
user_handle: 'user.name@datadoghq.com'
6767
}
68-
69-
createServer()
7068
})
7169

7270
afterEach(done => {

0 commit comments

Comments
 (0)