blob: 05f3f5cac511413b7a63e00ed883d6724f25d653 [file] [log] [blame]
var test = require('tape')
var mdeps = require('module-deps');
var bpack = require('browser-pack');
var insert = require('../');
var concat = require('concat-stream');
var vm = require('vm');
test('always true insert', function (t) {
t.plan(10);
var s = mdeps({
modules: {
buffer: require.resolve('buffer/'),
timers: require.resolve('timers-browserify')
}
});
s.pipe(bpack({ raw: true })).pipe(concat(function (src) {
var c = {
t: t,
process: 'sandbox process',
Buffer: 'sandbox Buffer',
__filename: 'sandbox __filename',
__dirname: 'sandbox __dirname',
custom: 'sandbox custom',
self: { xyz: 555 }
};
vm.runInNewContext(src, c);
}));
s.write({ transform: inserter({ always: true }), global: true });
s.end(__dirname + '/always/main.js');
});
test('always true insert custom globals without defaults', function (t) {
t.plan(7);
var s = mdeps({
modules: {
buffer: require.resolve('buffer/'),
timers: require.resolve('timers-browserify')
}
});
s.pipe(bpack({ raw: true })).pipe(concat(function (src) {
var c = {
t: t,
process: 'sandbox process',
Buffer: 'sandbox Buffer',
__filename: 'sandbox __filename',
__dirname: 'sandbox __dirname',
custom: 'sandbox custom',
self: { xyz: 555 }
};
vm.runInNewContext(src, c);
}));
s.write({
transform: inserter({ always: true, vars: {
global: {},
process: undefined,
Buffer: undefined,
__filename: undefined,
__dirname: undefined,
custom: function() { return '"inserted custom"' }
}}),
global: true
});
s.end(__dirname + '/always/custom_globals_without_defaults.js');
});
test('always truthy-but-not-true insert hidden from quick test is not really inserted; true is', function (t) {
t.plan(2);
var testit = function(always, expected) {
var s = mdeps({
modules: {
buffer: require.resolve('buffer/'),
timers: require.resolve('timers-browserify')
}
});
s.pipe(bpack({ raw: true })).pipe(concat(function (src) {
var c = {
t: t,
process: 'sandbox process',
Buffer: 'sandbox Buffer',
__filename: 'sandbox __filename',
__dirname: 'sandbox __dirname',
custom: 'sandbox custom',
expected: expected,
self: { xyz: 555 }
};
vm.runInNewContext(src, c);
}));
s.write({
transform: inserter({ always: always, vars: {
custom: function() { return '"inserted custom"' }
}}),
global: true
})
s.end(__dirname + '/always/hidden_from_quick_test.js');
};
var always = 'truthy', expected = 'sandbox custom';
testit(always, expected);
always = true; expected = 'inserted custom';
testit(always, expected);
});
function inserter (opts) {
return function (file) {
return insert(file, opts);
};
}