diff options
author | kball <kball@zendev.com> | 2019-06-21 16:30:48 -0500 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-07-29 22:47:36 -0700 |
commit | 99879cac865877825a5a1feda4b766a6f780573f (patch) | |
tree | 057e0fb22a4666a4fa7c1cad2eb652afe15a8788 | |
parent | 800713418957106c0983745fa51adaeb4ef7dd07 (diff) | |
download | android-node-v8-99879cac865877825a5a1feda4b766a6f780573f.tar.gz android-node-v8-99879cac865877825a5a1feda4b766a6f780573f.tar.bz2 android-node-v8-99879cac865877825a5a1feda4b766a6f780573f.zip |
vm: increase code coverage of source_text_module.js
PR-URL: https://github.com/nodejs/node/pull/28350
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
-rw-r--r-- | test/parallel/test-vm-module-dynamic-namespace.js | 35 |
1 files changed, 35 insertions, 0 deletions
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 0000000000..bcd91daebd --- /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()); |