137 lines
4.0 KiB
JavaScript
137 lines
4.0 KiB
JavaScript
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);
|
|
});
|
|
|
|
test('inserted names do not cause const name collisions', function (t) {
|
|
t.plan(1);
|
|
var s = mdeps({
|
|
modules: {
|
|
buffer: require.resolve('buffer/'),
|
|
timers: require.resolve('timers-browserify')
|
|
}
|
|
});
|
|
s.on('error', t.fail);
|
|
s.pipe(bpack({ raw: true })).pipe(concat(function (src) {
|
|
var c = {
|
|
t: t,
|
|
Buffer: 'sandbox Buffer'
|
|
};
|
|
vm.runInNewContext(src, c);
|
|
}));
|
|
s.write({
|
|
transform: inserter({
|
|
always: true,
|
|
vars: {
|
|
Buffer: function() { return '"sandbox Buffer"' }
|
|
}
|
|
}),
|
|
global: true
|
|
});
|
|
s.end(__dirname + '/always/collision.js');
|
|
});
|
|
|
|
function inserter (opts) {
|
|
return function (file) {
|
|
return insert(file, opts);
|
|
};
|
|
}
|