mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-24 09:25:15 +00:00
62 lines
1.2 KiB
JavaScript
62 lines
1.2 KiB
JavaScript
/* 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')
|
|
})
|
|
})
|