123 lines
2.8 KiB
JavaScript
123 lines
2.8 KiB
JavaScript
|
var browserify = require('../');
|
||
|
var vm = require('vm');
|
||
|
var path = require('path');
|
||
|
var test = require('tap').test;
|
||
|
var fs = require('fs');
|
||
|
|
||
|
var testFiles = [
|
||
|
path.join(__dirname, 'multi_entry/a.js'),
|
||
|
path.join(__dirname, 'multi_entry/b.js'),
|
||
|
path.join(__dirname, 'multi_entry/c.js')
|
||
|
];
|
||
|
|
||
|
test('multi entry', function (t) {
|
||
|
t.plan(6);
|
||
|
|
||
|
var b = browserify([
|
||
|
testFiles[0],
|
||
|
testFiles[1]
|
||
|
]);
|
||
|
b.add(testFiles[2]);
|
||
|
|
||
|
b.on('dep', function(row) {
|
||
|
if (row.entry) {
|
||
|
t.ok(testFiles.indexOf(row.file) > -1, 'should contain full entry path');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
b.bundle(function (err, src) {
|
||
|
var c = {
|
||
|
times : 0,
|
||
|
t : t
|
||
|
};
|
||
|
vm.runInNewContext(src, c);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
test('multi entry relative', function (t) {
|
||
|
t.plan(6);
|
||
|
|
||
|
var rTestFiles = testFiles.map(function(x) {
|
||
|
return x.replace(__dirname + '/', '');
|
||
|
});
|
||
|
|
||
|
var b = browserify({
|
||
|
entries: [rTestFiles[0], rTestFiles[1]],
|
||
|
basedir: __dirname
|
||
|
});
|
||
|
b.add(rTestFiles[2]);
|
||
|
|
||
|
b.on('dep', function(row) {
|
||
|
if (row.entry) {
|
||
|
t.ok(testFiles.indexOf(row.file) > -1, 'should contain full entry path');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
b.bundle(function (err, src) {
|
||
|
var c = {
|
||
|
times : 0,
|
||
|
t : t
|
||
|
};
|
||
|
vm.runInNewContext(src, c);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
test('multi entry relative cwd', function (t) {
|
||
|
t.plan(6);
|
||
|
|
||
|
var rTestFiles = testFiles.map(function(x) {
|
||
|
return x.replace(__dirname + '/', './');
|
||
|
});
|
||
|
|
||
|
var b = browserify({
|
||
|
entries: [rTestFiles[0], rTestFiles[1]],
|
||
|
basedir: __dirname
|
||
|
});
|
||
|
b.add(rTestFiles[2]);
|
||
|
|
||
|
b.on('dep', function(row) {
|
||
|
if (row.entry) {
|
||
|
t.ok(testFiles.indexOf(row.file) > -1, 'should contain full entry path');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
b.bundle(function (err, src) {
|
||
|
var c = {
|
||
|
times : 0,
|
||
|
t : t
|
||
|
};
|
||
|
vm.runInNewContext(src, c);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
test('entries as streams', function (t) {
|
||
|
t.plan(6);
|
||
|
|
||
|
// commondir blows up with streams and without basedir
|
||
|
var opts = { basedir: __dirname + '/multi_entry' };
|
||
|
|
||
|
var b = browserify([
|
||
|
fs.createReadStream(testFiles[0]),
|
||
|
fs.createReadStream(testFiles[1])
|
||
|
], opts);
|
||
|
b.add(fs.createReadStream(testFiles[2]));
|
||
|
|
||
|
b.on('dep', function(row) {
|
||
|
if (row.entry) {
|
||
|
t.similar(
|
||
|
row.file,
|
||
|
RegExp(path.join(__dirname, 'multi_entry/_stream_').replace(/\\/g, '\\\\') + '[\\d].js'),
|
||
|
'should be full entry path'
|
||
|
);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
b.bundle(function (err, src) {
|
||
|
var c = {
|
||
|
times : 0,
|
||
|
t : t
|
||
|
};
|
||
|
vm.runInNewContext(src, c);
|
||
|
});
|
||
|
});
|