mirror of https://github.com/grpc/grpc-node.git
Add list endpoint unit tests
This commit is contained in:
parent
50759b5d74
commit
2fb705e54a
|
@ -149,4 +149,62 @@ describe('Health checking', () => {
|
|||
});
|
||||
})
|
||||
});
|
||||
describe('list', () => {
|
||||
it('Should return all registered service statuses', done => {
|
||||
healthClient.list({}, (error, response) => {
|
||||
assert.ifError(error);
|
||||
assert(response);
|
||||
assert.deepStrictEqual(response.statuses, {
|
||||
'': { status: 'SERVING' },
|
||||
'grpc.test.TestServiceNotServing': { status: 'NOT_SERVING' },
|
||||
'grpc.test.TestServiceServing': { status: 'SERVING' }
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('Should return an empty list when no services are registered', done => {
|
||||
// Create a new server with no services registered
|
||||
const emptyServer = new grpc.Server();
|
||||
const emptyImpl = new HealthImplementation({});
|
||||
emptyImpl.addToServer(emptyServer);
|
||||
emptyServer.bindAsync('localhost:0', grpc.ServerCredentials.createInsecure(), (error, port) => {
|
||||
assert.ifError(error);
|
||||
const HealthClientConstructor = grpc.makeClientConstructor(healthServiceDefinition, 'grpc.health.v1.HealthService');
|
||||
const emptyClient = new HealthClientConstructor(`localhost:${port}`, grpc.credentials.createInsecure()) as unknown as HealthClient;
|
||||
emptyServer.start();
|
||||
emptyClient.list({}, (error, response) => {
|
||||
assert.ifError(error);
|
||||
assert(response);
|
||||
assert.deepStrictEqual(response.statuses, {});
|
||||
emptyClient.close();
|
||||
emptyServer.tryShutdown(done);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('Should return RESOURCE_EXHAUSTED when too many services are registered', done => {
|
||||
const largeStatusMap: ServingStatusMap = {};
|
||||
for (let i = 0; i < 101; i++) {
|
||||
largeStatusMap[`service-${i}`] = 'SERVING';
|
||||
}
|
||||
const largeServer = new grpc.Server();
|
||||
const largeImpl = new HealthImplementation(largeStatusMap);
|
||||
largeImpl.addToServer(largeServer);
|
||||
largeServer.bindAsync('localhost:0', grpc.ServerCredentials.createInsecure(), (error, port) => {
|
||||
assert.ifError(error);
|
||||
const HealthClientConstructor = grpc.makeClientConstructor(healthServiceDefinition, 'grpc.health.v1.HealthService');
|
||||
const largeClient = new HealthClientConstructor(`localhost:${port}`, grpc.credentials.createInsecure()) as unknown as HealthClient;
|
||||
largeServer.start();
|
||||
largeClient.list({}, (error, response) => {
|
||||
assert(error);
|
||||
assert.strictEqual(error.code, grpc.status.RESOURCE_EXHAUSTED);
|
||||
assert.strictEqual(response, undefined);
|
||||
largeClient.close();
|
||||
largeServer.tryShutdown(done);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue