From e55e596b297844635d2fccda74da61d15903f4da Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Wed, 12 Feb 2025 16:15:22 -0800 Subject: [PATCH] grpc-js: Add test for custom error code --- packages/grpc-js/test/fixtures/test_service.proto | 1 + packages/grpc-js/test/test-server-errors.ts | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/grpc-js/test/fixtures/test_service.proto b/packages/grpc-js/test/fixtures/test_service.proto index 2a7a303f..f73f3151 100644 --- a/packages/grpc-js/test/fixtures/test_service.proto +++ b/packages/grpc-js/test/fixtures/test_service.proto @@ -22,6 +22,7 @@ message Request { string message = 2; int32 errorAfter = 3; int32 responseLength = 4; + int32 code = 5; } message Response { diff --git a/packages/grpc-js/test/test-server-errors.ts b/packages/grpc-js/test/test-server-errors.ts index fcc5ef7f..f9797b5b 100644 --- a/packages/grpc-js/test/test-server-errors.ts +++ b/packages/grpc-js/test/test-server-errors.ts @@ -395,10 +395,11 @@ describe('Other conditions', () => { const req = call.request; if (req.error) { + const code = req.code || grpc.status.UNKNOWN; const details = req.message || 'Requested error'; cb( - { code: grpc.status.UNKNOWN, details } as ServiceError, + { code, details } as ServiceError, null, trailerMetadata ); @@ -816,6 +817,18 @@ describe('Other conditions', () => { } ); }); + + it('for a non-standard error code', done => { + client.unary( + { error: true, code: 57 }, + (err: ServiceError, data: any) => { + assert(err); + assert.strictEqual(err.code, 57); + assert.strictEqual(err.details, 'Requested error'); + done(); + } + ); + }); }); describe('should handle server stream errors correctly', () => {