You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					62 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					62 lines
				
				1.2 KiB
			| 
											3 years ago
										 | /* 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') | ||
|  |   }) | ||
|  | }) |