var test = require('tap').test; var fromArgs = require('../bin/args.js'); var path = require('path'); var vm = require('vm'); test('bundle from an arguments array', function (t) { t.plan(2); var b = fromArgs([ __dirname + '/entry/two.js', '-s', 'XYZ' ]); b.bundle(function (err, src) { t.ifError(err); var c = { window: {} }; vm.runInNewContext(src, c); t.equal(c.window.XYZ, 2); }); }); test('external flag for node modules', function(t) { t.plan(2); var b = fromArgs([ __dirname + '/external_args/main.js', '-x', 'backbone' ]); b.bundle(function (err, src) { t.ifError(err); vm.runInNewContext(src, {t: t}); }); }); test('bundle from an arguments with --insert-global-vars', function (t) { t.plan(4); var b = fromArgs([ __dirname + '/global/filename.js', '--insert-global-vars=__filename,__dirname', '--basedir', __dirname ]); b.require(__dirname + '/global/filename.js', { expose: 'x' }); b.bundle(function (err, src) { t.ifError(err, 'b.bundle()'); var c = {}, x; vm.runInNewContext(src, c); t.doesNotThrow(function() { x = c.require('x'); }, 'x = c.require(\'x\')'); t.equal(x && x.filename, '/global/filename.js', 'x.filename'); t.equal(x && x.dirname, '/global', 'x.dirname'); }) }); test('numeric module names', function(t) { t.plan(1); var b = fromArgs([ '-x', '1337' ]); b.bundle(function (err, src) { t.ifError(err); }); }); test('entry expose', function (t) { t.plan(3) var b = fromArgs([ path.join(__dirname, '/entry_expose/main.js'), '--require', path.join(__dirname, '/entry_expose/main.js') + ':x', ]); b.bundle(function (err, src) { t.ifError(err); var c = { console: { log: log } }; function log (msg) { t.equal(msg, 'wow') } vm.runInNewContext(src, c); t.equal(c.require('x'), 555); }) });