test: http2 client ping errors
PR-URL: https://github.com/nodejs/node/pull/18849 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
parent
808c05858a
commit
1e57a8d117
@ -71,12 +71,60 @@ server.listen(0, common.mustCall(() => {
|
||||
assert.deepStrictEqual(payload, ret);
|
||||
})));
|
||||
}
|
||||
|
||||
// Only max 2 pings at a time based on the maxOutstandingPings option
|
||||
assert(!client.ping(common.expectsError({
|
||||
code: 'ERR_HTTP2_PING_CANCEL',
|
||||
type: Error,
|
||||
message: 'HTTP2 ping cancelled'
|
||||
})));
|
||||
|
||||
// should throw if payload is not of type ArrayBufferView
|
||||
{
|
||||
[1, true, {}, []].forEach((invalidPayload) =>
|
||||
common.expectsError(
|
||||
() => client.ping(invalidPayload),
|
||||
{
|
||||
type: TypeError,
|
||||
code: 'ERR_INVALID_ARG_TYPE',
|
||||
message: 'The "payload" argument must be one of type' +
|
||||
' Buffer, TypedArray, or DataView'
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// should throw if payload length is not 8
|
||||
{
|
||||
const shortPayload = Buffer.from('abcdefg');
|
||||
const longPayload = Buffer.from('abcdefghi');
|
||||
[shortPayload, longPayload].forEach((payloadWithInvalidLength) =>
|
||||
common.expectsError(
|
||||
() => client.ping(payloadWithInvalidLength),
|
||||
{
|
||||
type: RangeError,
|
||||
code: 'ERR_HTTP2_PING_LENGTH',
|
||||
message: 'HTTP2 ping payload must be 8 bytes'
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// should throw error is callback is not of type function
|
||||
{
|
||||
const payload = Buffer.from('abcdefgh');
|
||||
[1, true, {}, []].forEach((invalidCallback) =>
|
||||
common.expectsError(
|
||||
() => client.ping(payload, invalidCallback),
|
||||
{
|
||||
type: TypeError,
|
||||
code: 'ERR_INVALID_CALLBACK',
|
||||
message: 'Callback must be a function'
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
const req = client.request();
|
||||
req.resume();
|
||||
req.on('end', common.mustCall(() => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user