From 0ce6be07dadc3e8b3d761d1e3128c68a5f70ed0a Mon Sep 17 00:00:00 2001 From: Trivikram Kamat Date: Tue, 3 Oct 2017 20:16:05 -0700 Subject: [PATCH] test: http2 ERR_INVALID_ARG_TYPE tests PR-URL: https://github.com/nodejs/node/pull/15766 Ref: https://github.com/nodejs/node/issues/14985 Reviewed-By: James M Snell Reviewed-By: Daniel Bevenius Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig --- ...test-http2-createsecureserver-nooptions.js | 48 +++++-------------- .../test-http2-invalidargtypes-errors.js | 43 +++++++++++++++++ 2 files changed, 56 insertions(+), 35 deletions(-) create mode 100644 test/parallel/test-http2-invalidargtypes-errors.js diff --git a/test/parallel/test-http2-createsecureserver-nooptions.js b/test/parallel/test-http2-createsecureserver-nooptions.js index 652a2815069..05029cba2bb 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'); +const invalidOptions = [() => {}, 1, 'test', null, undefined]; +const invalidArgTypeError = { + type: TypeError, + code: 'ERR_INVALID_ARG_TYPE', + message: 'The "options" argument must be of type object' +}; + // 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 - }); - -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 - }); +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 00000000000..93d161557c1 --- /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(); + }) +);