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);
+ });
+ });
+});