From 67ca88e9cc695939b50a743454b3d00db16a4ae6 Mon Sep 17 00:00:00 2001 From: davidmarkclements Date: Mon, 16 Apr 2018 11:50:03 +0200 Subject: [PATCH] changes the base instance for ERR_UNKNOWN_FILE_EXTENSION from Error to TypeError as a more accurate representation of the error and adds a unit test for unsupported extension in esm resolution. --- lib/internal/errors.js | 4 +-- test/es-module/test-esm-loader-search.js | 17 ------------ test/es-module/test-esm-loader.js | 35 ++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 20 deletions(-) delete mode 100644 test/es-module/test-esm-loader-search.js create mode 100644 test/es-module/test-esm-loader.js diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 8505ec39b68642..d36bd562c2308a 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -1001,9 +1001,7 @@ E('ERR_UNHANDLED_ERROR', return `${msg} (${err})`; }, Error); E('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError); - -// This should probably be a `TypeError`. -E('ERR_UNKNOWN_FILE_EXTENSION', 'Unknown file extension: %s', Error); +E('ERR_UNKNOWN_FILE_EXTENSION', 'Unknown file extension: %s', TypeError); E('ERR_UNKNOWN_MODULE_FORMAT', 'Unknown module format: %s', RangeError); E('ERR_UNKNOWN_SIGNAL', 'Unknown signal: %s', TypeError); E('ERR_UNKNOWN_STDIN_TYPE', 'Unknown stdin file type', Error); diff --git a/test/es-module/test-esm-loader-search.js b/test/es-module/test-esm-loader-search.js deleted file mode 100644 index 0ca8990cb723ad..00000000000000 --- a/test/es-module/test-esm-loader-search.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; -// Flags: --expose-internals - -// This test ensures that search throws errors appropriately - -const common = require('../common'); - -const { search } = require('internal/modules/esm/default_resolve'); - -common.expectsError( - () => search('target', undefined), - { - code: 'ERR_MISSING_MODULE', - type: Error, - message: 'Cannot find module target' - } -); diff --git a/test/es-module/test-esm-loader.js b/test/es-module/test-esm-loader.js new file mode 100644 index 00000000000000..3d92462984d3e3 --- /dev/null +++ b/test/es-module/test-esm-loader.js @@ -0,0 +1,35 @@ +'use strict'; +// Flags: --expose-internals + +// This test ensures that resolve and search throw errors appropriately + +const common = require('../common'); +const tmpdir = require('../common/tmpdir'); +const { join } = require('path'); +const resolve = require('internal/modules/esm/default_resolve'); +const { writeFileSync, unlinkSync } = require('fs'); + +const { search } = resolve; +const unsupported = join( + tmpdir.path, + 'module-with-extension-that-is.unsupported'); +tmpdir.refresh(); +writeFileSync(unsupported, ''); +common.expectsError( + () => resolve(unsupported, 'file://' + require.resolve(__filename)), + { + code: 'ERR_UNKNOWN_FILE_EXTENSION', + type: TypeError, + message: 'Unknown file extension: ' + unsupported + } +); +unlinkSync(unsupported); + +common.expectsError( + () => search('target', undefined), + { + code: 'ERR_MISSING_MODULE', + type: Error, + message: 'Cannot find module target' + } +);