var browserify = require('../'); var test = require('tap').test; var vm = require('vm'); test('require expose external module', function (t) { t.plan(2); var b = browserify({ basedir: __dirname }); b.require('beep', { expose: 'bip' }); b.bundle(function (err, src) { t.ifError(err); var c = { }; vm.runInNewContext(src, c); t.equal(c.require('bip'), 'boop'); }) }); test('renaming builtin', function (t) { t.plan(2); var b = browserify({ basedir: __dirname }); b.require('os', { expose: 'bone' }); b.bundle(function (err, src) { t.ifError(err); var c = { }; vm.runInNewContext(src, c); t.equal(c.require('bone').platform(), 'browser'); }) }); test('exposed modules do not leak across bundles', function (t) { var bundle1, bundle2; bundle1 = browserify(); bundle1.add(__dirname + '/require_expose/main.js'); bundle1.require(__dirname + '/require_expose/some_dep.js', { expose: 'foo' }); bundle1.bundle(function (err, src) { if (err) t.fail(err); var c = {}; vm.runInNewContext(src, c); t.equal(c.foo, 'some_dep'); bundle2 = browserify(); bundle2.add(__dirname + '/require_expose/main.js'); bundle2.bundle(function (err) { t.ok(err && err.message.match(/Cannot find module 'foo'/), 'should fail with missing module'); t.end(); }); }); });