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.
86 lines
2.5 KiB
86 lines
2.5 KiB
'use strict' |
|
|
|
var test = require('tape') |
|
var path = require('path') |
|
var requireInject = require('require-inject') |
|
var configure = requireInject('../lib/configure', { |
|
'graceful-fs': { |
|
'closeSync': function (fd) { return undefined }, |
|
'openSync': function (path) { |
|
if (readableFiles.some(function (f) { return f === path} )) { |
|
return 0 |
|
} else { |
|
var error = new Error('ENOENT - not found') |
|
throw error |
|
} |
|
} |
|
} |
|
}) |
|
|
|
var dir = path.sep + 'testdir' |
|
var readableFile = 'readable_file' |
|
var anotherReadableFile = 'another_readable_file' |
|
var readableFileInDir = 'somedir' + path.sep + readableFile |
|
var readableFiles = [ |
|
path.resolve(dir, readableFile), |
|
path.resolve(dir, anotherReadableFile), |
|
path.resolve(dir, readableFileInDir) |
|
] |
|
|
|
test('find accessible - empty array', function (t) { |
|
t.plan(1) |
|
|
|
var candidates = [] |
|
var found = configure.test.findAccessibleSync('test', dir, candidates) |
|
t.strictEqual(found, undefined) |
|
}) |
|
|
|
test('find accessible - single item array, readable', function (t) { |
|
t.plan(1) |
|
|
|
var candidates = [ readableFile ] |
|
var found = configure.test.findAccessibleSync('test', dir, candidates) |
|
t.strictEqual(found, path.resolve(dir, readableFile)) |
|
}) |
|
|
|
test('find accessible - single item array, readable in subdir', function (t) { |
|
t.plan(1) |
|
|
|
var candidates = [ readableFileInDir ] |
|
var found = configure.test.findAccessibleSync('test', dir, candidates) |
|
t.strictEqual(found, path.resolve(dir, readableFileInDir)) |
|
}) |
|
|
|
test('find accessible - single item array, unreadable', function (t) { |
|
t.plan(1) |
|
|
|
var candidates = [ 'unreadable_file' ] |
|
var found = configure.test.findAccessibleSync('test', dir, candidates) |
|
t.strictEqual(found, undefined) |
|
}) |
|
|
|
|
|
test('find accessible - multi item array, no matches', function (t) { |
|
t.plan(1) |
|
|
|
var candidates = [ 'non_existent_file', 'unreadable_file' ] |
|
var found = configure.test.findAccessibleSync('test', dir, candidates) |
|
t.strictEqual(found, undefined) |
|
}) |
|
|
|
|
|
test('find accessible - multi item array, single match', function (t) { |
|
t.plan(1) |
|
|
|
var candidates = [ 'non_existent_file', readableFile ] |
|
var found = configure.test.findAccessibleSync('test', dir, candidates) |
|
t.strictEqual(found, path.resolve(dir, readableFile)) |
|
}) |
|
|
|
test('find accessible - multi item array, return first match', function (t) { |
|
t.plan(1) |
|
|
|
var candidates = [ 'non_existent_file', anotherReadableFile, readableFile ] |
|
var found = configure.test.findAccessibleSync('test', dir, candidates) |
|
t.strictEqual(found, path.resolve(dir, anotherReadableFile)) |
|
})
|
|
|