Initial commit
[yaffs-website] / node_modules / resolve / test / mock_sync.js
1 var path = require('path');
2 var test = require('tape');
3 var resolve = require('../');
4
5 test('mock', function (t) {
6     t.plan(4);
7
8     var files = {};
9     files[path.resolve('/foo/bar/baz.js')] = 'beep';
10
11     function opts(basedir) {
12         return {
13             basedir: path.resolve(basedir),
14             isFile: function (file) {
15                 return Object.prototype.hasOwnProperty.call(files, file);
16             },
17             readFileSync: function (file) {
18                 return files[file];
19             }
20         };
21     }
22
23     t.equal(
24         resolve.sync('./baz', opts('/foo/bar')),
25         path.resolve('/foo/bar/baz.js')
26     );
27
28     t.equal(
29         resolve.sync('./baz.js', opts('/foo/bar')),
30         path.resolve('/foo/bar/baz.js')
31     );
32
33     t.throws(function () {
34         resolve.sync('baz', opts('/foo/bar'));
35     });
36
37     t.throws(function () {
38         resolve.sync('../baz', opts('/foo/bar'));
39     });
40 });
41
42 test('mock package', function (t) {
43     t.plan(1);
44
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     });
50
51     function opts(basedir) {
52         return {
53             basedir: path.resolve(basedir),
54             isFile: function (file) {
55                 return Object.prototype.hasOwnProperty.call(files, file);
56             },
57             readFileSync: function (file) {
58                 return files[file];
59             }
60         };
61     }
62
63     t.equal(
64         resolve.sync('bar', opts('/foo')),
65         path.resolve('/foo/node_modules/bar/baz.js')
66     );
67 });