Blame view

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