UNPKG

2.08 kBJavaScriptView Raw
1var path = require('path');
2var test = require('tape');
3var resolve = require('../');
4
5test('mock', function (t) {
6 t.plan(4);
7
8 var files = {};
9 files[path.resolve('/foo/bar/baz.js')] = 'beep';
10
11 var dirs = {};
12 dirs[path.resolve('/foo/bar')] = true;
13
14 function opts(basedir) {
15 return {
16 basedir: path.resolve(basedir),
17 isFile: function (file) {
18 return Object.prototype.hasOwnProperty.call(files, path.resolve(file));
19 },
20 isDirectory: function (dir) {
21 return !!dirs[path.resolve(dir)];
22 },
23 readFileSync: function (file) {
24 return files[path.resolve(file)];
25 }
26 };
27 }
28
29 t.equal(
30 resolve.sync('./baz', opts('/foo/bar')),
31 path.resolve('/foo/bar/baz.js')
32 );
33
34 t.equal(
35 resolve.sync('./baz.js', opts('/foo/bar')),
36 path.resolve('/foo/bar/baz.js')
37 );
38
39 t.throws(function () {
40 resolve.sync('baz', opts('/foo/bar'));
41 });
42
43 t.throws(function () {
44 resolve.sync('../baz', opts('/foo/bar'));
45 });
46});
47
48test('mock package', function (t) {
49 t.plan(1);
50
51 var files = {};
52 files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
53 files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
54 main: './baz.js'
55 });
56
57 var dirs = {};
58 dirs[path.resolve('/foo')] = true;
59 dirs[path.resolve('/foo/node_modules')] = true;
60
61 function opts(basedir) {
62 return {
63 basedir: path.resolve(basedir),
64 isFile: function (file) {
65 return Object.prototype.hasOwnProperty.call(files, path.resolve(file));
66 },
67 isDirectory: function (dir) {
68 return !!dirs[path.resolve(dir)];
69 },
70 readFileSync: function (file) {
71 return files[path.resolve(file)];
72 }
73 };
74 }
75
76 t.equal(
77 resolve.sync('bar', opts('/foo')),
78 path.resolve('/foo/node_modules/bar/baz.js')
79 );
80});