diff --git a/test/parallel/test-http2-connect.js b/test/parallel/test-http2-connect.js index 087f942932c519..60777dadeb8e1e 100644 --- a/test/parallel/test-http2-connect.js +++ b/test/parallel/test-http2-connect.js @@ -1,31 +1,49 @@ // Flags: --expose-http2 'use strict'; -const { mustCall, hasCrypto, skip } = require('../common'); +const { mustCall, hasCrypto, skip, expectsError } = require('../common'); if (!hasCrypto) skip('missing crypto'); -const { doesNotThrow } = require('assert'); +const { doesNotThrow, throws } = require('assert'); const { createServer, connect } = require('http2'); +{ + const server = createServer(); + server.listen(0, mustCall(() => { + const authority = `http://localhost:${server.address().port}`; + const options = {}; + const listener = () => mustCall(); -const server = createServer(); -server.listen(0, mustCall(() => { - const authority = `http://localhost:${server.address().port}`; - const options = {}; - const listener = () => mustCall(); + const clients = new Set(); + doesNotThrow(() => clients.add(connect(authority))); + doesNotThrow(() => clients.add(connect(authority, options))); + doesNotThrow(() => clients.add(connect(authority, options, listener()))); + doesNotThrow(() => clients.add(connect(authority, listener()))); - const clients = new Set(); - doesNotThrow(() => clients.add(connect(authority))); - doesNotThrow(() => clients.add(connect(authority, options))); - doesNotThrow(() => clients.add(connect(authority, options, listener()))); - doesNotThrow(() => clients.add(connect(authority, listener()))); + for (const client of clients) { + client.once('connect', mustCall((headers) => { + client.destroy(); + clients.delete(client); + if (clients.size === 0) { + server.close(); + } + })); + } + })); +} - for (const client of clients) { - client.once('connect', mustCall((headers) => { - client.destroy(); - clients.delete(client); - if (clients.size === 0) { - server.close(); - } - })); - } -})); +// check for https as protocol +{ + const authority = 'https://localhost'; + doesNotThrow(() => connect(authority)); +} + +// check for error for an invalid protocol (not http or https) +{ + const authority = 'ssh://localhost'; + throws(() => { + connect(authority); + }, expectsError({ + code: 'ERR_HTTP2_UNSUPPORTED_PROTOCOL', + type: Error + })); +}