| 'use strict'; |
| // Flags: --expose-internals |
| |
| // This test ensures that the type checking of ModuleMap throws |
| // errors appropriately |
| |
| const common = require('../common'); |
| |
| const { URL } = require('url'); |
| const { Loader } = require('internal/modules/esm/loader'); |
| const ModuleMap = require('internal/modules/esm/module_map'); |
| const ModuleJob = require('internal/modules/esm/module_job'); |
| const createDynamicModule = require( |
| 'internal/modules/esm/create_dynamic_module'); |
| |
| const stubModuleUrl = new URL('file://tmp/test'); |
| const stubModule = createDynamicModule(['default'], stubModuleUrl); |
| const loader = new Loader(); |
| const moduleMap = new ModuleMap(); |
| const moduleJob = new ModuleJob(loader, stubModule.module, |
| () => new Promise(() => {})); |
| |
| common.expectsError( |
| () => moduleMap.get(1), |
| { |
| code: 'ERR_INVALID_ARG_TYPE', |
| type: TypeError, |
| message: 'The "url" argument must be of type string. Received type number' |
| } |
| ); |
| |
| common.expectsError( |
| () => moduleMap.set(1, moduleJob), |
| { |
| code: 'ERR_INVALID_ARG_TYPE', |
| type: TypeError, |
| message: 'The "url" argument must be of type string. Received type number' |
| } |
| ); |
| |
| common.expectsError( |
| () => moduleMap.set('somestring', 'notamodulejob'), |
| { |
| code: 'ERR_INVALID_ARG_TYPE', |
| type: TypeError, |
| message: 'The "job" argument must be of type ModuleJob. ' + |
| 'Received type string' |
| } |
| ); |
| |
| common.expectsError( |
| () => moduleMap.has(1), |
| { |
| code: 'ERR_INVALID_ARG_TYPE', |
| type: TypeError, |
| message: 'The "url" argument must be of type string. Received type number' |
| } |
| ); |