From 59640738815588cb61511bfa1edf93f3a52105be Mon Sep 17 00:00:00 2001 From: naugtur Date: Thu, 29 Aug 2024 10:47:54 +0200 Subject: [PATCH] test(compartment-mapper): document lack of live bindings in bundler with a test --- packages/compartment-mapper/test/bundle.test.js | 14 ++++++++++++++ .../bundle/import-named-exports-from-me.js | 4 ++-- .../bundle/unsupported-import-live-binding.js | 3 +++ .../fixtures-0/node_modules/bundle/unsupported.js | 1 + 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 packages/compartment-mapper/test/fixtures-0/node_modules/bundle/unsupported-import-live-binding.js create mode 100644 packages/compartment-mapper/test/fixtures-0/node_modules/bundle/unsupported.js diff --git a/packages/compartment-mapper/test/bundle.test.js b/packages/compartment-mapper/test/bundle.test.js index abc5fc0075..3f9fd91f64 100644 --- a/packages/compartment-mapper/test/bundle.test.js +++ b/packages/compartment-mapper/test/bundle.test.js @@ -10,6 +10,10 @@ const fixture = new URL( 'fixtures-0/node_modules/bundle/main.js', import.meta.url, ).toString(); +const fixtureUnsupported = new URL( + 'fixtures-0/node_modules/bundle/unsupported.js', + import.meta.url, +).toString(); const { read } = makeReadPowers({ fs, url }); @@ -83,6 +87,16 @@ test('equivalent archive behaves the same as bundle', async t => { t.deepEqual(log, expectedLog); }); +test('unsupported: live binding in bundle throws', async t => { + const bundle = await makeBundle(read, fixtureUnsupported); + const compartment = new Compartment({ + __options__: true, + }); + t.throws(() => { + compartment.evaluate(bundle); + },{message: /buzz is not defined/}); +}); + // This is failing because it requires support for missing dependencies. // Cannot bundle: encountered deferredError Cannot find file for internal module "./spam" test.failing('bundle cjs-compat', async t => { diff --git a/packages/compartment-mapper/test/fixtures-0/node_modules/bundle/import-named-exports-from-me.js b/packages/compartment-mapper/test/fixtures-0/node_modules/bundle/import-named-exports-from-me.js index 74dd35e70f..f4a866979e 100644 --- a/packages/compartment-mapper/test/fixtures-0/node_modules/bundle/import-named-exports-from-me.js +++ b/packages/compartment-mapper/test/fixtures-0/node_modules/bundle/import-named-exports-from-me.js @@ -1,5 +1,5 @@ -let buzz; +let buzz = 'buzz'; const fizz = 'fizz'; const bizz = 'bizz'; -buzz = 'buzz'; + export { fizz, bizz, buzz }; diff --git a/packages/compartment-mapper/test/fixtures-0/node_modules/bundle/unsupported-import-live-binding.js b/packages/compartment-mapper/test/fixtures-0/node_modules/bundle/unsupported-import-live-binding.js new file mode 100644 index 0000000000..48ba94c949 --- /dev/null +++ b/packages/compartment-mapper/test/fixtures-0/node_modules/bundle/unsupported-import-live-binding.js @@ -0,0 +1,3 @@ +let buzz; +buzz= 'buzz'; +export { buzz }; diff --git a/packages/compartment-mapper/test/fixtures-0/node_modules/bundle/unsupported.js b/packages/compartment-mapper/test/fixtures-0/node_modules/bundle/unsupported.js new file mode 100644 index 0000000000..c96bfa499c --- /dev/null +++ b/packages/compartment-mapper/test/fixtures-0/node_modules/bundle/unsupported.js @@ -0,0 +1 @@ +import { buzz } from './unsupported-import-live-binding.js'; \ No newline at end of file