var test = require('tap').test; var vm = require('vm'); var concat = require('concat-stream'); var insert = require('../'); var bpack = require('browser-pack'); var mdeps = require('module-deps'); test('insert globals', function (t) { var expected = [ 'global' ]; t.plan(2 + expected.length); var files = [ __dirname + '/global/main.js' ]; var deps = mdeps(files, { transform: function (file) { var tr = inserter(file) tr.on('global', function (name) { t.equal(name, expected.shift()); }); return tr; } }); var pack = bpack({ raw: true }); deps.pipe(pack); pack.pipe(concat(function (src) { var c = { t : t, a : 555, }; c.self = c; vm.runInNewContext(src, c); })); }); test('__filename and __dirname', function (t) { t.plan(2); var files = [ __dirname + '/global/filename.js' ]; var deps = mdeps(files, { transform: inserter }); var pack = bpack({ raw: true }); deps.pipe(pack); pack.pipe(concat(function (src) { var c = {}; vm.runInNewContext('require=' + src, c); var x = c.require(files[0]); t.equal(x.filename, '/filename.js'); t.equal(x.dirname, '/'); })); }); function inserter (file) { return insert(file, { basedir: __dirname + '/global' }); }