node_modules/browserify/test/multi_bundle.js in sprockets-browserify-0.2.0 vs node_modules/browserify/test/multi_bundle.js in sprockets-browserify-0.3.0

- old
+ new

@@ -40,5 +40,46 @@ // because it was part of the core bundle t.equal(c.baton.times, 1); }); }); }); + +test('multi bundle', function (t) { + t.plan(8); + + var core = browserify({ exposeAll: true }); + core.require(__dirname + '/multi_bundle/a.js', { expose: true }); + + var app = browserify([__dirname + '/multi_bundle/c.js']); + // inform this bundle that b exists in another bundle + app.external(core); + + core.bundle(function (err, src) { + var c = { + console: console, + t : t, + baton: { + times: 0 + } + }; + + // loading core will cause no require to run + vm.runInNewContext(src, c); + t.equal(c.baton.times, 0); + + // loading the app will require + app.bundle(function (err, src) { + vm.runInNewContext(src, c); + + // b required for the first time + t.equal(c.baton.times, 1); + + // running the file again + // because it is using the same b, no reloading + vm.runInNewContext(src, c); + + // b should not have been required again + // because it was part of the core bundle + t.equal(c.baton.times, 1); + }); + }); +});