Skip to content

Commit a2d1e57

Browse files
committed
Fix test flakiness
1 parent 63582c7 commit a2d1e57

2 files changed

Lines changed: 21 additions & 5 deletions

File tree

packages/grpc/src/server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ function createHealthServiceDefinition(): grpc.ServiceDefinition {
6767
/**
6868
* Create and start the gRPC server
6969
*/
70-
function createGrpcServer(): grpc.Server {
70+
export function createGrpcServer(): grpc.Server {
7171
const server = new grpc.Server();
7272

7373
const analyzerServiceDefinition = createAnalyzerServiceDefinition();

packages/grpc/tests/health-service.test.ts

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,27 @@
1717
import { describe, it, before, after } from 'node:test';
1818
import { expect } from 'expect';
1919
import * as grpc from '@grpc/grpc-js';
20-
import { startServer } from '../src/server.js';
2120
import { grpc as healthProto } from '../src/proto/health.js';
21+
import { createGrpcServer } from '../src/server.js';
2222

23-
const TEST_PORT = 50152;
2423
const HEALTH_SERVICE_NAME = 'grpc.health.v1.Health';
2524

25+
/**
26+
* Start a test server on a dynamically assigned port
27+
*/
28+
async function startTestServer(): Promise<{ server: grpc.Server; port: number }> {
29+
return new Promise((resolve, reject) => {
30+
const server = createGrpcServer();
31+
server.bindAsync('0.0.0.0:0', grpc.ServerCredentials.createInsecure(), (error, port) => {
32+
if (error) {
33+
reject(error);
34+
} else {
35+
resolve({ server, port });
36+
}
37+
});
38+
});
39+
}
40+
2641
/**
2742
* Create a gRPC client for the Health service
2843
*/
@@ -84,8 +99,9 @@ describe('Health service', () => {
8499
let client: ReturnType<typeof createHealthClient>;
85100

86101
before(async () => {
87-
server = await startServer(TEST_PORT);
88-
client = createHealthClient(TEST_PORT);
102+
const testServer = await startTestServer();
103+
server = testServer.server;
104+
client = createHealthClient(testServer.port);
89105
});
90106

91107
after(async () => {

0 commit comments

Comments
 (0)