Skip to content

Commit af9a885

Browse files
committed
[Tests] use path methods to make tests pass on both linux and Windows.
1 parent ec1a98f commit af9a885

File tree

3 files changed

+78
-82
lines changed

3 files changed

+78
-82
lines changed

test/mock.js

Lines changed: 45 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,55 @@
1+
var path = require('path');
12
var test = require('tape');
23
var resolve = require('../');
34

45
test('mock', function (t) {
56
t.plan(6);
67

7-
var files = {
8-
'/foo/bar/baz.js': 'beep'
9-
};
8+
var files = {};
9+
files[path.resolve('/foo/bar/baz.js')] = 'beep';
1010

1111
function opts(basedir) {
1212
return {
13-
basedir: basedir,
13+
basedir: path.resolve(basedir),
1414
isFile: function (file, cb) {
15-
cb(null, Object.prototype.hasOwnProperty.call(files, file));
15+
cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
1616
},
1717
readFile: function (file, cb) {
18-
cb(null, files[file]);
18+
cb(null, files[path.resolve(file)]);
1919
}
2020
};
2121
}
2222

2323
resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
24-
if (err) t.fail(err);
25-
t.equal(res, '/foo/bar/baz.js');
24+
if (err) return t.fail(err);
25+
t.equal(res, path.resolve('/foo/bar/baz.js'));
2626
t.equal(pkg, undefined);
2727
});
2828

2929
resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
30-
if (err) t.fail(err);
31-
t.equal(res, '/foo/bar/baz.js');
30+
if (err) return t.fail(err);
31+
t.equal(res, path.resolve('/foo/bar/baz.js'));
3232
t.equal(pkg, undefined);
3333
});
3434

3535
resolve('baz', opts('/foo/bar'), function (err, res) {
36-
t.equal(err.message, "Cannot find module 'baz' from '/foo/bar'");
36+
t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'");
3737
});
3838

3939
resolve('../baz', opts('/foo/bar'), function (err, res) {
40-
t.equal(err.message, "Cannot find module '../baz' from '/foo/bar'");
40+
t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'");
4141
});
4242
});
4343

4444
test('mock from package', function (t) {
4545
t.plan(6);
4646

47-
var files = {
48-
'/foo/bar/baz.js': 'beep'
49-
};
47+
var files = {};
48+
files[path.resolve('/foo/bar/baz.js')] = 'beep';
5049

5150
function opts(basedir) {
5251
return {
53-
basedir: basedir,
52+
basedir: path.resolve(basedir),
5453
isFile: function (file, cb) {
5554
cb(null, Object.prototype.hasOwnProperty.call(files, file));
5655
},
@@ -62,81 +61,79 @@ test('mock from package', function (t) {
6261
}
6362

6463
resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
65-
if (err) t.fail(err);
66-
t.equal(res, '/foo/bar/baz.js');
67-
t.equal(pkg.main, 'bar');
64+
if (err) return t.fail(err);
65+
t.equal(res, path.resolve('/foo/bar/baz.js'));
66+
t.equal(pkg && pkg.main, 'bar');
6867
});
6968

7069
resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
71-
if (err) t.fail(err);
72-
t.equal(res, '/foo/bar/baz.js');
73-
t.equal(pkg.main, 'bar');
70+
if (err) return t.fail(err);
71+
t.equal(res, path.resolve('/foo/bar/baz.js'));
72+
t.equal(pkg && pkg.main, 'bar');
7473
});
7574

7675
resolve('baz', opts('/foo/bar'), function (err, res) {
77-
t.equal(err.message, "Cannot find module 'baz' from '/foo/bar'");
76+
t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'");
7877
});
7978

8079
resolve('../baz', opts('/foo/bar'), function (err, res) {
81-
t.equal(err.message, "Cannot find module '../baz' from '/foo/bar'");
80+
t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'");
8281
});
8382
});
8483

8584
test('mock package', function (t) {
8685
t.plan(2);
8786

88-
var files = {
89-
'/foo/node_modules/bar/baz.js': 'beep',
90-
'/foo/node_modules/bar/package.json': JSON.stringify({
91-
main: './baz.js'
92-
})
93-
};
87+
var files = {};
88+
files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
89+
files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
90+
main: './baz.js'
91+
});
9492

9593
function opts(basedir) {
9694
return {
97-
basedir: basedir,
95+
basedir: path.resolve(basedir),
9896
isFile: function (file, cb) {
99-
cb(null, Object.prototype.hasOwnProperty.call(files, file));
97+
cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
10098
},
10199
readFile: function (file, cb) {
102-
cb(null, files[file]);
100+
cb(null, files[path.resolve(file)]);
103101
}
104102
};
105103
}
106104

107105
resolve('bar', opts('/foo'), function (err, res, pkg) {
108-
if (err) t.fail(err);
109-
t.equal(res, '/foo/node_modules/bar/baz.js');
110-
t.equal(pkg.main, './baz.js');
106+
if (err) return t.fail(err);
107+
t.equal(res, path.resolve('/foo/node_modules/bar/baz.js'));
108+
t.equal(pkg && pkg.main, './baz.js');
111109
});
112110
});
113111

114112
test('mock package from package', function (t) {
115113
t.plan(2);
116114

117-
var files = {
118-
'/foo/node_modules/bar/baz.js': 'beep',
119-
'/foo/node_modules/bar/package.json': JSON.stringify({
120-
main: './baz.js'
121-
})
122-
};
115+
var files = {};
116+
files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
117+
files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
118+
main: './baz.js'
119+
});
123120

124121
function opts(basedir) {
125122
return {
126-
basedir: basedir,
123+
basedir: path.resolve(basedir),
127124
isFile: function (file, cb) {
128-
cb(null, Object.prototype.hasOwnProperty.call(files, file));
125+
cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
129126
},
130127
'package': { main: 'bar' },
131128
readFile: function (file, cb) {
132-
cb(null, files[file]);
129+
cb(null, files[path.resolve(file)]);
133130
}
134131
};
135132
}
136133

137134
resolve('bar', opts('/foo'), function (err, res, pkg) {
138-
if (err) t.fail(err);
139-
t.equal(res, '/foo/node_modules/bar/baz.js');
140-
t.equal(pkg.main, './baz.js');
135+
if (err) return t.fail(err);
136+
t.equal(res, path.resolve('/foo/node_modules/bar/baz.js'));
137+
t.equal(pkg && pkg.main, './baz.js');
141138
});
142139
});

test/mock_sync.js

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1+
var path = require('path');
12
var test = require('tape');
23
var resolve = require('../');
34

45
test('mock', function (t) {
56
t.plan(4);
67

7-
var files = {
8-
'/foo/bar/baz.js': 'beep'
9-
};
8+
var files = {};
9+
files[path.resolve('/foo/bar/baz.js')] = 'beep';
1010

1111
function opts(basedir) {
1212
return {
13-
basedir: basedir,
13+
basedir: path.resolve(basedir),
1414
isFile: function (file) {
1515
return Object.prototype.hasOwnProperty.call(files, file);
1616
},
@@ -22,12 +22,12 @@ test('mock', function (t) {
2222

2323
t.equal(
2424
resolve.sync('./baz', opts('/foo/bar')),
25-
'/foo/bar/baz.js'
25+
path.resolve('/foo/bar/baz.js')
2626
);
2727

2828
t.equal(
2929
resolve.sync('./baz.js', opts('/foo/bar')),
30-
'/foo/bar/baz.js'
30+
path.resolve('/foo/bar/baz.js')
3131
);
3232

3333
t.throws(function () {
@@ -42,16 +42,15 @@ test('mock', function (t) {
4242
test('mock package', function (t) {
4343
t.plan(1);
4444

45-
var files = {
46-
'/foo/node_modules/bar/baz.js': 'beep',
47-
'/foo/node_modules/bar/package.json': JSON.stringify({
48-
main: './baz.js'
49-
})
50-
};
45+
var files = {};
46+
files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
47+
files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
48+
main: './baz.js'
49+
});
5150

5251
function opts(basedir) {
5352
return {
54-
basedir: basedir,
53+
basedir: path.resolve(basedir),
5554
isFile: function (file) {
5655
return Object.prototype.hasOwnProperty.call(files, file);
5756
},
@@ -63,6 +62,6 @@ test('mock package', function (t) {
6362

6463
t.equal(
6564
resolve.sync('bar', opts('/foo')),
66-
'/foo/node_modules/bar/baz.js'
65+
path.resolve('/foo/node_modules/bar/baz.js')
6766
);
6867
});

test/resolver.js

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -176,16 +176,16 @@ test('normalize', function (t) {
176176

177177
test('cup', function (t) {
178178
t.plan(3);
179-
var dir = __dirname + '/resolver';
179+
var dir = path.join(__dirname, 'resolver');
180180

181181
resolve('./cup', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) {
182182
if (err) t.fail(err);
183-
t.equal(res, dir + '/cup.coffee');
183+
t.equal(res, path.join(dir, 'cup.coffee'));
184184
});
185185

186186
resolve('./cup.coffee', { basedir: dir }, function (err, res) {
187187
if (err) t.fail(err);
188-
t.equal(res, dir + '/cup.coffee');
188+
t.equal(res, path.join(dir, 'cup.coffee'));
189189
});
190190

191191
resolve('./cup', { basedir: dir, extensions: ['.js'] }, function (err, res) {
@@ -195,37 +195,37 @@ test('cup', function (t) {
195195

196196
test('mug', function (t) {
197197
t.plan(3);
198-
var dir = __dirname + '/resolver';
198+
var dir = path.join(__dirname, 'resolver');
199199

200200
resolve('./mug', { basedir: dir }, function (err, res) {
201201
if (err) t.fail(err);
202-
t.equal(res, dir + '/mug.js');
202+
t.equal(res, path.join(dir, 'mug.js'));
203203
});
204204

205205
resolve('./mug', { basedir: dir, extensions: ['.coffee', '.js'] }, function (err, res) {
206206
if (err) t.fail(err);
207-
t.equal(res, dir + '/mug.coffee');
207+
t.equal(res, path.join(dir, '/mug.coffee'));
208208
});
209209

210210
resolve('./mug', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) {
211-
t.equal(res, dir + '/mug.js');
211+
t.equal(res, path.join(dir, '/mug.js'));
212212
});
213213
});
214214

215215
test('other path', function (t) {
216216
t.plan(4);
217-
var resolverDir = __dirname + '/resolver';
218-
var dir = resolverDir + '/bar';
219-
var otherDir = resolverDir + '/other_path';
217+
var resolverDir = path.join(__dirname, 'resolver');
218+
var dir = path.join(resolverDir, 'bar');
219+
var otherDir = path.join(resolverDir, 'other_path');
220220

221221
resolve('root', { basedir: dir, paths: [otherDir] }, function (err, res) {
222222
if (err) t.fail(err);
223-
t.equal(res, resolverDir + '/other_path/root.js');
223+
t.equal(res, path.join(resolverDir, 'other_path/root.js'));
224224
});
225225

226226
resolve('lib/other-lib', { basedir: dir, paths: [otherDir] }, function (err, res) {
227227
if (err) t.fail(err);
228-
t.equal(res, resolverDir + '/other_path/lib/other-lib.js');
228+
t.equal(res, path.join(resolverDir, 'other_path/lib/other-lib.js'));
229229
});
230230

231231
resolve('root', { basedir: dir }, function (err, res) {
@@ -240,37 +240,37 @@ test('other path', function (t) {
240240
test('incorrect main', function (t) {
241241
t.plan(1);
242242

243-
var resolverDir = __dirname + '/resolver';
244-
var dir = resolverDir + '/incorrect_main';
243+
var resolverDir = path.join(__dirname, 'resolver');
244+
var dir = path.join(resolverDir, 'incorrect_main');
245245

246246
resolve('./incorrect_main', { basedir: resolverDir }, function (err, res, pkg) {
247247
if (err) t.fail(err);
248-
t.equal(res, dir + '/index.js');
248+
t.equal(res, path.join(dir, 'index.js'));
249249
});
250250
});
251251

252252
test('without basedir', function (t) {
253253
t.plan(1);
254254

255-
var dir = __dirname + '/resolver/without_basedir';
256-
var tester = require(dir + '/main.js');
255+
var dir = path.join(__dirname, 'resolver/without_basedir');
256+
var tester = require(path.join(dir, 'main.js'));
257257

258258
tester(t, function (err, res, pkg) {
259259
if (err) {
260260
t.fail(err);
261261
} else {
262-
t.equal(res, dir + '/node_modules/mymodule.js');
262+
t.equal(res, path.join(dir, 'node_modules/mymodule.js'));
263263
}
264264
});
265265
});
266266

267267
test('#25: node modules with the same name as node stdlib modules', function (t) {
268268
t.plan(1);
269269

270-
var resolverDir = __dirname + '/resolver/punycode';
270+
var resolverDir = path.join(__dirname, 'resolver/punycode');
271271

272272
resolve('punycode', { basedir: resolverDir }, function (err, res, pkg) {
273273
if (err) t.fail(err);
274-
t.equal(res, resolverDir + '/node_modules/punycode/index.js');
274+
t.equal(res, path.join(resolverDir, 'node_modules/punycode/index.js'));
275275
});
276276
});

0 commit comments

Comments
 (0)