From a2636305fcd611df98a4176e7dd02a7a29f08c57 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 28 Sep 2017 22:59:14 -0700 Subject: [PATCH] test: fix and refactor test-http-invalid-urls When the second argument to `assert.throws()` is a string, it is not treated as the expected error message but rather the message that the assertion should display if no error is thrown. Ths change fixes that error in `test-http-invalid-urls.js`. Instead of skipping the test when there is no crypto, the test is now run but with `http` only. `https` is skipped. Logging was fixed. Previously, errors would be written out as being in the `[object Object]` module rather than `http` or `https`. --- test/parallel/test-http-invalid-urls.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/test/parallel/test-http-invalid-urls.js b/test/parallel/test-http-invalid-urls.js index 039270fe430108..51e680071a92a3 100644 --- a/test/parallel/test-http-invalid-urls.js +++ b/test/parallel/test-http-invalid-urls.js @@ -1,20 +1,25 @@ +/* eslint-disable crypto-check */ + 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); -const assert = require('assert'); const http = require('http'); -const https = require('https'); -const error = 'Unable to determine the domain name'; +const modules = { 'http': http }; + +if (common.hasCrypto) { + const https = require('https'); + modules.https = https; +} function test(host) { - ['get', 'request'].forEach((method) => { - [http, https].forEach((module) => { - assert.throws(() => module[method](host, () => { - throw new Error(`${module}.${method} should not connect to ${host}`); - }), error); + ['get', 'request'].forEach((fn) => { + Object.keys(modules).forEach((module) => { + const doNotCall = common.mustNotCall( + `${module}.${fn} should not connect to ${host}` + ); + const throws = () => { modules[module][fn](host, doNotCall); }; + common.expectsError(throws, { code: 'ERR_INVALID_DOMAIN_NAME' }); }); }); }