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