You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
7 years ago
|
var join = require('path').join;
|
||
|
var read = require('fs').readFileSync;
|
||
|
var inspect = require('util').inspect;
|
||
|
var assert = require('assert');
|
||
|
var rfile = require('../');
|
||
|
|
||
|
var testCases = [];
|
||
|
function equal(reqPath, fullPath, options) {
|
||
|
testCases.push([reqPath, fullPath, options]);
|
||
|
}
|
||
|
|
||
|
equal('./index.js', __filename);
|
||
|
equal('../package.json', join(__dirname, '..', 'package.json'));
|
||
|
equal('./index', __filename);
|
||
|
equal('../package', join(__dirname, '..', 'package.json'));
|
||
|
equal('../README', join(__dirname, '..', 'README.md'), {extensions: ['.md']});
|
||
|
|
||
|
|
||
|
describe('rfile.resolve', function () {
|
||
|
testCases.forEach(function (testCase) {
|
||
|
describe('(' + inspect(testCase[0]) + (testCase[2] ? ', ' + inspect(testCase[2]) : '') + ')', function () {
|
||
|
it('resolves to ' + inspect(testCase[1]), function () {
|
||
|
assert.equal(rfile.resolve(testCase[0], testCase[2]), testCase[1]);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('rfile', function () {
|
||
|
testCases.forEach(function (testCase) {
|
||
|
describe('(' + inspect(testCase[0]) + (testCase[2] ? ', ' + inspect(testCase[2]) : '') + ')', function () {
|
||
|
it('reads ' + inspect(testCase[1]), function () {
|
||
|
assert.equal(rfile(testCase[0], testCase[2]), stripBOM(read(testCase[1]).toString()).replace(/\r/g, ''));
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
|
||
|
function stripBOM(str){
|
||
|
return 0xFEFF == str.charCodeAt(0)
|
||
|
? str.substring(1)
|
||
|
: str;
|
||
|
}
|