Skip to content

Commit

Permalink
Fix tests on Windows.
Browse files Browse the repository at this point in the history
 - Use path.join in more places in tests so they can run on windows

 - Fix noParse check on windows

 - Fix regex in multi_entry test for windows paths

 - Skip symlink tests on windows

 - Fix ignore check on windows

 - Fix paths in noparse and ignore tests on windows.
  • Loading branch information
goto-bus-stop committed May 8, 2018
1 parent 2d896a9 commit c5120b7
Show file tree
Hide file tree
Showing 16 changed files with 124 additions and 118 deletions.
4 changes: 2 additions & 2 deletions index.js
Expand Up @@ -498,7 +498,7 @@ Browserify.prototype._createDeps = function (opts) {
return cb(null, paths.empty, {});
}
if (file && self._ignore.length) {
var nm = file.split('/node_modules/')[1];
var nm = file.replace(/\\/g, '/').split('/node_modules/')[1];
if (nm) {
nm = nm.split('/')[0];
if (self._ignore.indexOf(nm) >= 0) {
Expand Down Expand Up @@ -576,7 +576,7 @@ Browserify.prototype._createDeps = function (opts) {
if (no.indexOf(file) >= 0) return through();
if (absno.indexOf(file) >= 0) return through();

var parts = file.split('/node_modules/');
var parts = file.replace(/\\/g, '/').split('/node_modules/');
for (var i = 0; i < no.length; i++) {
if (typeof no[i] === 'function' && no[i](file)) {
return through();
Expand Down
5 changes: 3 additions & 2 deletions test/delay.js
@@ -1,5 +1,6 @@
var browserify = require('../');
var vm = require('vm');
var path = require('path');
var test = require('tap').test;
var through = require('through2');

Expand All @@ -9,8 +10,8 @@ test('delay for pipelines', function (t) {
var b = browserify(__dirname + '/delay/main.js');
b.pipeline.get('record').push(through.obj(function (row, enc, next) {
if (row.file) {
t.equal(row.file, __dirname + '/delay/main.js');
row.file = __dirname + '/delay/diverted.js';
t.equal(row.file, path.join(__dirname, 'delay/main.js'));
row.file = path.join(__dirname, 'delay/diverted.js');
}
this.push(row);
next();
Expand Down
5 changes: 3 additions & 2 deletions test/entry.js
@@ -1,13 +1,14 @@
var browserify = require('../');
var vm = require('vm');
var path = require('path');
var test = require('tap').test;

test('entry', function (t) {
t.plan(3);

var b = browserify(__dirname + '/entry/main.js');
b.on('dep', function(row) {
if (row.entry) t.equal(row.file, __dirname + '/entry/main.js');
if (row.entry) t.equal(row.file, path.join(__dirname, 'entry/main.js'));
});
b.bundle(function (err, src) {
var c = {
Expand All @@ -27,7 +28,7 @@ test('entry via add', function (t) {
var b = browserify();
b.add(__dirname + '/entry/main.js');
b.on('dep', function(row) {
if (row.entry) t.equal(row.file, __dirname + '/entry/main.js');
if (row.entry) t.equal(row.file, path.join(__dirname, 'entry/main.js'));
});
b.bundle(function (err, src) {
var c = {
Expand Down
1 change: 0 additions & 1 deletion test/entry_expose.js
@@ -1,6 +1,5 @@
var test = require('tap').test;
var browserify = require('../');
var path = require('path');
var vm = require('vm');

test('entry expose', function (t) {
Expand Down
5 changes: 3 additions & 2 deletions test/entry_relative.js
@@ -1,5 +1,6 @@
var browserify = require('../');
var vm = require('vm');
var path = require('path');
var test = require('tap').test;

test('entry - relative path', function (t) {
Expand All @@ -9,7 +10,7 @@ test('entry - relative path', function (t) {

var b = browserify('entry/main.js');
b.on('dep', function(row) {
if (row.entry) t.equal(row.file, __dirname + '/entry/main.js');
if (row.entry) t.equal(row.file, path.join(__dirname, 'entry/main.js'));
});
b.bundle(function (err, src) {
var c = {
Expand All @@ -29,7 +30,7 @@ test('entry - relative path via add', function (t) {
var b = browserify({basedir: __dirname});
b.add('entry/main.js');
b.on('dep', function(row) {
if (row.entry) t.equal(row.file, __dirname + '/entry/main.js');
if (row.entry) t.equal(row.file, path.join(__dirname, 'entry/main.js'));
});
b.bundle(function (err, src) {
var c = {
Expand Down
2 changes: 1 addition & 1 deletion test/file_event.js
Expand Up @@ -8,7 +8,7 @@ test('file event', function (t) {

var b = browserify(__dirname + '/entry/main.js');
var files = {
'main.js': __dirname + '/entry/main.js',
'main.js': path.join(__dirname, 'entry/main.js'),
'one.js': './one',
'two.js': './two'
};
Expand Down
3 changes: 2 additions & 1 deletion test/global_noparse.js
@@ -1,5 +1,6 @@
var browserify = require('../');
var vm = require('vm');
var path = require('path');
var test = require('tap').test;

test('global noparse module', function (t) {
Expand Down Expand Up @@ -84,7 +85,7 @@ test('global noparse function', function (t) {

var b = browserify({
noParse: function(file) {
return file === __dirname + '/global/filename.js';
return file === path.join(__dirname, 'global/filename.js');
}
});
b.require(__dirname + '/global/filename.js', { expose: 'x' });
Expand Down
181 changes: 91 additions & 90 deletions test/ignore.js
@@ -1,90 +1,91 @@
var browserify = require('../');
var test = require('tap').test;
var vm = require('vm');

test('ignore', function (t) {
t.plan(1);

var b = browserify();
b.add(__dirname + '/ignore/main.js');
b.ignore( __dirname + '/ignore/skip.js');

b.bundle(function (err, src) {
if (err) t.fail(err);
vm.runInNewContext(src, { t: t });
});
});

test('ignore array', function(t) {
t.plan(2);

var b = browserify();
b.add(__dirname + '/ignore/array.js');
b.ignore([
__dirname + '/ignore/skip.js',
__dirname + '/ignore/skip2.js'
]);

b.bundle(function (err, src) {
if (err) {
t.fail(err);
}
vm.runInNewContext(src, { t: t });
});
});

test('ignore by package or id', function (t) {
t.plan(3);

var b = browserify();
b.add(__dirname + '/ignore/by-id.js');
b.ignore('events');
b.ignore('beep');
b.ignore('bad id');

b.bundle(function (err, src) {
if (err) t.fail(err);
vm.runInNewContext(src, { t: t });
});
});

test('ignore files referenced by relative path', function (t) {
// Change the current working directory relative to this file
var cwd = process.cwd();
process.chdir(__dirname);

t.plan(1);

var b = browserify();
b.add(__dirname + '/ignore/by-relative.js');
b.ignore('./ignore/ignored/skip.js');

b.bundle(function (err, src) {
if (err) t.fail(err);
vm.runInNewContext(src, { t: t });
});

// Revert CWD
process.chdir(cwd);
});

test('do not ignore files with relative paths that do not resolve', function (t) {
// Change the current working directory to the ignore folder
var cwd = process.cwd();
process.chdir(__dirname + '/ignore');

t.plan(2);

var b = browserify();
b.add(__dirname + '/ignore/double-skip.js');

b.ignore('./skip.js');

b.bundle(function (err, src) {
if (err) t.fail(err);
vm.runInNewContext(src, { t: t });
});

// Revert CWD
process.chdir(cwd);
});
var browserify = require('../');
var test = require('tap').test;
var vm = require('vm');
var path = require('path');

test('ignore', function (t) {
t.plan(1);

var b = browserify();
b.add(__dirname + '/ignore/main.js');
b.ignore(path.join(__dirname, 'ignore/skip.js'));

b.bundle(function (err, src) {
if (err) t.fail(err);
vm.runInNewContext(src, { t: t });
});
});

test('ignore array', function(t) {
t.plan(2);

var b = browserify();
b.add(__dirname + '/ignore/array.js');
b.ignore([
path.join(__dirname, 'ignore/skip.js'),
path.join(__dirname, 'ignore/skip2.js')
]);

b.bundle(function (err, src) {
if (err) {
t.fail(err);
}
vm.runInNewContext(src, { t: t });
});
});

test('ignore by package or id', function (t) {
t.plan(3);

var b = browserify();
b.add(__dirname + '/ignore/by-id.js');
b.ignore('events');
b.ignore('beep');
b.ignore('bad id');

b.bundle(function (err, src) {
if (err) t.fail(err);
vm.runInNewContext(src, { t: t });
});
});

test('ignore files referenced by relative path', function (t) {
// Change the current working directory relative to this file
var cwd = process.cwd();
process.chdir(__dirname);

t.plan(1);

var b = browserify();
b.add(__dirname + '/ignore/by-relative.js');
b.ignore('./ignore/ignored/skip.js');

b.bundle(function (err, src) {
if (err) t.fail(err);
vm.runInNewContext(src, { t: t });
});

// Revert CWD
process.chdir(cwd);
});

test('do not ignore files with relative paths that do not resolve', function (t) {
// Change the current working directory to the ignore folder
var cwd = process.cwd();
process.chdir(__dirname + '/ignore');

t.plan(2);

var b = browserify();
b.add(__dirname + '/ignore/double-skip.js');

b.ignore('./skip.js');

b.bundle(function (err, src) {
if (err) t.fail(err);
vm.runInNewContext(src, { t: t });
});

// Revert CWD
process.chdir(cwd);
});
9 changes: 5 additions & 4 deletions test/multi_entry.js
@@ -1,12 +1,13 @@
var browserify = require('../');
var vm = require('vm');
var path = require('path');
var test = require('tap').test;
var fs = require('fs');

var testFiles = [
__dirname + '/multi_entry/a.js',
__dirname + '/multi_entry/b.js',
__dirname + '/multi_entry/c.js'
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) {
Expand Down Expand Up @@ -105,7 +106,7 @@ test('entries as streams', function (t) {
if (row.entry) {
t.similar(
row.file,
RegExp(__dirname + '/multi_entry/_stream_[\\d].js'),
RegExp(path.join(__dirname, 'multi_entry/_stream_').replace(/\\/g, '\\\\') + '[\\d].js'),
'should be full entry path'
);
}
Expand Down
7 changes: 4 additions & 3 deletions test/multi_entry_cross_require.js
@@ -1,11 +1,12 @@
var browserify = require('../');
var vm = require('vm');
var path = require('path');
var test = require('tap').test;

var testFiles = [
__dirname + '/multi_entry_cross_require/a.js',
__dirname + '/multi_entry_cross_require/lib/b.js',
__dirname + '/multi_entry_cross_require/c.js'
path.join(__dirname, 'multi_entry_cross_require/a.js'),
path.join(__dirname, 'multi_entry_cross_require/lib/b.js'),
path.join(__dirname, 'multi_entry_cross_require/c.js')
];

test('multi entry cross require', function (t) {
Expand Down
2 changes: 1 addition & 1 deletion test/multi_symlink.js
Expand Up @@ -2,7 +2,7 @@ var browserify = require('../');
var vm = require('vm');
var test = require('tap').test;

test('multiple symlink execution', function (t) {
test('multiple symlink execution', { skip: process.platform === 'win32' }, function (t) {
t.plan(1);
var b = browserify(__dirname + '/multi_symlink/main.js');
b.bundle(function (err, src) {
Expand Down
4 changes: 2 additions & 2 deletions test/noparse.js
Expand Up @@ -18,8 +18,8 @@ test('noParse array', function (t) {
var b = browserify({
entries: [ __dirname + '/noparse/a.js' ],
noParse: [
__dirname + '/noparse/dir1/1.js',
__dirname + '/noparse/node_modules/robot/main.js'
path.join(__dirname, 'noparse/dir1/1.js'),
path.join(__dirname, 'noparse/node_modules/robot/main.js')
]
});
b.on('dep', function(dep) { actual.push(dep.file); });
Expand Down
8 changes: 4 additions & 4 deletions test/preserve-symlinks.js
Expand Up @@ -2,24 +2,24 @@ var browserify = require('../');
var vm = require('vm');
var test = require('tap').test;

test('optionally preserves symlinks', function (t) {
test('optionally preserves symlinks', { skip: process.platform === 'win32' }, function (t) {
t.plan(2);

var b = browserify(__dirname + '/preserve_symlinks/a/index.js', {preserveSymlinks: true});
b.bundle(function (err, buf) {
t.ok(!err);
t.ifError(err);
t.ok(buf);
var src = buf.toString('utf8');
vm.runInNewContext(src, {});
});
});

test('always resolve entry point symlink', function (t) {
test('always resolve entry point symlink', { skip: process.platform === 'win32' }, function (t) {
t.plan(2);

var b = browserify(__dirname + '/preserve_symlinks/linked-entry.js', {preserveSymlinks: true});
b.bundle(function (err, buf) {
t.ok(!err);
t.ifError(err);
t.ok(buf);
var src = buf.toString('utf8');
vm.runInNewContext(src, {});
Expand Down
2 changes: 1 addition & 1 deletion test/shared_symlink.js
Expand Up @@ -4,7 +4,7 @@ var browserify = require('../');
var vm = require('vm');
var test = require('tap').test;

test('shared symlink', function (t) {
test('shared symlink', { skip: process.platform === 'win32' }, function (t) {
t.plan(1);
var b = browserify(__dirname + '/shared_symlink/main.js');
b.bundle(function (err, src) {
Expand Down

0 comments on commit c5120b7

Please sign in to comment.