|
1 | 1 | import http from 'node:http'; |
2 | 2 | import { describe, expect, it } from 'vitest'; |
3 | | -import { |
4 | | - buildWorkflowSuspensionMessage, |
5 | | - getPort, |
6 | | - getWorkflowRunStreamId, |
7 | | -} from './util'; |
| 3 | +import { buildWorkflowSuspensionMessage, getWorkflowRunStreamId } from './util'; |
8 | 4 |
|
9 | 5 | describe('buildWorkflowSuspensionMessage', () => { |
10 | 6 | const runId = 'test-run-123'; |
@@ -170,93 +166,3 @@ describe('getWorkflowRunStreamId', () => { |
170 | 166 | expect(result.includes('_user')).toBe(true); |
171 | 167 | }); |
172 | 168 | }); |
173 | | - |
174 | | -describe('getPort', () => { |
175 | | - it('should return undefined or a positive number', async () => { |
176 | | - const port = await getPort(); |
177 | | - expect(port === undefined || typeof port === 'number').toBe(true); |
178 | | - if (port !== undefined) { |
179 | | - expect(port).toBeGreaterThan(0); |
180 | | - } |
181 | | - }); |
182 | | - |
183 | | - it('should return a port number when a server is listening', async () => { |
184 | | - const server = http.createServer(); |
185 | | - |
186 | | - await new Promise<void>((resolve) => { |
187 | | - server.listen(0, () => resolve()); |
188 | | - }); |
189 | | - |
190 | | - // Give system time to register the port |
191 | | - await new Promise((resolve) => setTimeout(resolve, 100)); |
192 | | - |
193 | | - try { |
194 | | - const port = await getPort(); |
195 | | - const address = server.address(); |
196 | | - |
197 | | - // Port detection may not work immediately in all environments (CI, Docker, etc.) |
198 | | - // so we just verify the function returns a valid result |
199 | | - if (port !== undefined) { |
200 | | - expect(typeof port).toBe('number'); |
201 | | - expect(port).toBeGreaterThan(0); |
202 | | - |
203 | | - // If we have the address, optionally verify it matches |
204 | | - if (address && typeof address === 'object') { |
205 | | - // In most cases it should match, but not required for test to pass |
206 | | - expect([port, undefined]).toContain(port); |
207 | | - } |
208 | | - } |
209 | | - } finally { |
210 | | - await new Promise<void>((resolve, reject) => { |
211 | | - server.close((err) => (err ? reject(err) : resolve())); |
212 | | - }); |
213 | | - } |
214 | | - }); |
215 | | - |
216 | | - it('should return the smallest port when multiple servers are listening', async () => { |
217 | | - const server1 = http.createServer(); |
218 | | - const server2 = http.createServer(); |
219 | | - |
220 | | - await new Promise<void>((resolve) => { |
221 | | - server1.listen(0, () => resolve()); |
222 | | - }); |
223 | | - |
224 | | - await new Promise<void>((resolve) => { |
225 | | - server2.listen(0, () => resolve()); |
226 | | - }); |
227 | | - |
228 | | - // Give system time to register the ports |
229 | | - await new Promise((resolve) => setTimeout(resolve, 100)); |
230 | | - |
231 | | - try { |
232 | | - const port = await getPort(); |
233 | | - const addr1 = server1.address(); |
234 | | - const addr2 = server2.address(); |
235 | | - |
236 | | - // Port detection may not work in all environments |
237 | | - if ( |
238 | | - port !== undefined && |
239 | | - addr1 && |
240 | | - typeof addr1 === 'object' && |
241 | | - addr2 && |
242 | | - typeof addr2 === 'object' |
243 | | - ) { |
244 | | - // Should return the smallest port |
245 | | - expect(port).toBeLessThanOrEqual(Math.max(addr1.port, addr2.port)); |
246 | | - expect(port).toBeGreaterThan(0); |
247 | | - } else { |
248 | | - // If port detection doesn't work in this environment, just pass |
249 | | - expect(port === undefined || typeof port === 'number').toBe(true); |
250 | | - } |
251 | | - } finally { |
252 | | - await Promise.all([ |
253 | | - new Promise<void>((resolve, reject) => { |
254 | | - server1.close((err) => (err ? reject(err) : resolve())); |
255 | | - }), |
256 | | - new Promise<void>((resolve, reject) => { |
257 | | - server2.close((err) => (err ? reject(err) : resolve())); |
258 | | - }), |
259 | | - ]); |
260 | | - } |
261 | | - }); |
262 | | -}); |
0 commit comments