Blame view

天文台pc/tianwentai-ui/node_modules/find-root/test/test.js 1.22 KB
bc518174   王天杨   提交两个项目文件
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
  /* globals describe, it */
  var chai = require('chai')
  chai.should()
  var expect = chai.expect
  var moquire = require('moquire')
  
  var MODULE = '../'
  
  describe('find-root', function () {
    it('recursively looks for package.json', function () {
      var checked = []
      var fs = {
        existsSync: function (path) {
          checked.push(path)
          return path === '/foo/package.json'
        }
      }
  
      var findRoot = moquire(MODULE, {fs: fs})
  
      findRoot('/foo/bar/baz')
        .should.equal('/foo')
  
      checked.should.deep.equal([
        '/foo/bar/baz/package.json',
        '/foo/bar/package.json',
        '/foo/package.json'
      ])
    })
  
    it('can take a custom check argument', function () {
      var checked = []
  
      var findRoot = require(MODULE)
  
      findRoot('/foo/bar/baz', function (dir) {
        checked.push(dir)
        return dir === '/foo/bar'
      })
      .should.equal('/foo/bar')
  
      checked.should.deep.equal([
        '/foo/bar/baz',
        '/foo/bar'
      ])
    })
  
    it('throws if not found', function () {
      var fs = {
        statSync: function (path) {
          throw new Error()
        }
      }
  
      var findRoot = moquire(MODULE, {fs: fs})
  
      expect(function () {
        findRoot('/foo/bar/baz/')
      }).to.throw('not found')
    })
  })