diff --git a/test/parallel/test-http2-createsecureserver-nooptions.js b/test/parallel/test-http2-createsecureserver-nooptions.js index 652a281506..05029cba2b 100644 --- a/test/parallel/test-http2-createsecureserver-nooptions.js +++ b/test/parallel/test-http2-createsecureserver-nooptions.js @@ -6,39 +6,17 @@ if (!common.hasCrypto) const http2 = require('http2'); -// Error if options are not passed to createSecureServer - -common.expectsError( - () => http2.createSecureServer(), - { - code: 'ERR_INVALID_ARG_TYPE', - type: TypeError - }); - -common.expectsError( - () => http2.createSecureServer(() => {}), - { - code: 'ERR_INVALID_ARG_TYPE', - type: TypeError - }); +const invalidOptions = [() => {}, 1, 'test', null, undefined]; +const invalidArgTypeError = { + type: TypeError, + code: 'ERR_INVALID_ARG_TYPE', + message: 'The "options" argument must be of type object' +}; -common.expectsError( - () => http2.createSecureServer(1), - { - code: 'ERR_INVALID_ARG_TYPE', - type: TypeError - }); - -common.expectsError( - () => http2.createSecureServer('test'), - { - code: 'ERR_INVALID_ARG_TYPE', - type: TypeError - }); - -common.expectsError( - () => http2.createSecureServer(null), - { - code: 'ERR_INVALID_ARG_TYPE', - type: TypeError - }); +// Error if options are not passed to createSecureServer +invalidOptions.forEach((invalidOption) => + common.expectsError( + () => http2.createSecureServer(invalidOption), + invalidArgTypeError + ) +); diff --git a/test/parallel/test-http2-invalidargtypes-errors.js b/test/parallel/test-http2-invalidargtypes-errors.js new file mode 100644 index 0000000000..93d161557c --- /dev/null +++ b/test/parallel/test-http2-invalidargtypes-errors.js @@ -0,0 +1,43 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const http2 = require('http2'); + +const server = http2.createServer(); + +server.on( + 'stream', + common.mustCall((stream) => { + const invalidArgTypeError = (param, type) => ({ + type: TypeError, + code: 'ERR_INVALID_ARG_TYPE', + message: `The "${param}" argument must be of type ${type}` + }); + common.expectsError( + () => stream.session.priority(undefined, {}), + invalidArgTypeError('stream', 'Http2Stream') + ); + common.expectsError( + () => stream.session.rstStream(undefined), + invalidArgTypeError('stream', 'Http2Stream') + ); + common.expectsError( + () => stream.session.rstStream(stream, 'string'), + invalidArgTypeError('code', 'number') + ); + stream.session.destroy(); + }) +); + +server.listen( + 0, + common.mustCall(() => { + const client = http2.connect(`http://localhost:${server.address().port}`); + const req = client.request(); + req.resume(); + req.on('end', common.mustCall(() => server.close())); + req.end(); + }) +);