From 99879cac865877825a5a1feda4b766a6f780573f Mon Sep 17 00:00:00 2001 From: kball Date: Fri, 21 Jun 2019 16:30:48 -0500 Subject: [PATCH] vm: increase code coverage of source_text_module.js PR-URL: https://github.com/nodejs/node/pull/28350 Reviewed-By: Anna Henningsen Reviewed-By: Rich Trott Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell Reviewed-By: Michael Dawson --- .../test-vm-module-dynamic-namespace.js | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 test/parallel/test-vm-module-dynamic-namespace.js diff --git a/test/parallel/test-vm-module-dynamic-namespace.js b/test/parallel/test-vm-module-dynamic-namespace.js new file mode 100644 index 00000000000..bcd91daebd0 --- /dev/null +++ b/test/parallel/test-vm-module-dynamic-namespace.js @@ -0,0 +1,35 @@ +'use strict'; + +// Flags: --experimental-vm-modules --expose-internals +// +const common = require('../common'); + +const assert = require('assert'); + +const { types } = require('util'); +const { SourceTextModule, wrapMap } = require('internal/vm/source_text_module'); + +const { importModuleDynamicallyCallback } = + require('internal/process/esm_loader'); + +async function getNamespace() { + const m = new SourceTextModule(''); + await m.link(() => 0); + m.instantiate(); + await m.evaluate(); + return m.namespace; +} + +(async () => { + const namespace = await getNamespace(); + const m = new SourceTextModule('export const A = "A";', { + importModuleDynamically: common.mustCall((specifier, wrap) => { + return namespace; + }) + }); + await m.link(() => 0); + m.instantiate(); + await m.evaluate(); + const ns = await importModuleDynamicallyCallback(wrapMap.get(m)); + assert.ok(types.isModuleNamespaceObject(ns)); +})().then(common.mustCall());