var test = require('tape'); var vm = require('vm'); var concat = require('concat-stream'); var path = require('path'); 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 deps = mdeps() 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); })); deps.write({ transform: function (file) { var tr = inserter(file) tr.on('global', function (name) { t.equal(name, expected.shift()); }); return tr; }, global: true }); deps.end(__dirname + '/global/main.js'); }); test('__filename and __dirname', function (t) { t.plan(2); var file = path.join(__dirname, 'global', 'filename.js'); var deps = mdeps() var pack = bpack({ raw: true }); deps.pipe(pack); pack.pipe(concat(function (src) { var c = {}; vm.runInNewContext('require=' + src, c); var x = c.require(file); t.equal(x.filename, '/filename.js'); t.equal(x.dirname, '/'); })); deps.write({ transform: inserter, global: true }); deps.end(file); }); function inserter (file) { return insert(file, { basedir: __dirname + '/global' }); }