Skip to content

Commit 6596acf

Browse files
committed
GrpcWebClientBase: add falsy response test
1 parent a00a817 commit 6596acf

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

javascript/net/grpc/web/grpcwebclientbase_test.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,33 @@ testSuite({
7575
assertElementsEquals(DEFAULT_UNARY_HEADER_VALUES, Object.values(headers));
7676
},
7777

78+
async testRpcFalsyResponse() {
79+
const xhr = new XhrIo();
80+
const client = new GrpcWebClientBase(/* options= */ {}, xhr);
81+
const methodDescriptor = createMethodDescriptor((bytes) => {
82+
assertElementsEquals(DEFAULT_RPC_RESPONSE_DATA, [].slice.call(bytes));
83+
return 0;
84+
});
85+
86+
const response = await new Promise((resolve, reject) => {
87+
client.rpcCall(
88+
'url', new MockRequest(), /* metadata= */ {}, methodDescriptor,
89+
(error, response) => {
90+
assertNull(error);
91+
resolve(response);
92+
});
93+
xhr.simulatePartialResponse(
94+
googCrypt.encodeByteArray(new Uint8Array(DEFAULT_RPC_RESPONSE)),
95+
DEFAULT_RESPONSE_HEADERS);
96+
xhr.simulateReadyStateChange(ReadyState.COMPLETE);
97+
});
98+
99+
assertEquals(0, response);
100+
const headers = /** @type {!Object} */ (xhr.getLastRequestHeaders());
101+
assertElementsEquals(DEFAULT_UNARY_HEADERS, Object.keys(headers));
102+
assertElementsEquals(DEFAULT_UNARY_HEADER_VALUES, Object.values(headers));
103+
},
104+
78105
async testDeadline() {
79106
const xhr = new XhrIo();
80107
const client = new GrpcWebClientBase(/* options= */ {}, xhr);

0 commit comments

Comments
 (0)