UNPKG

npm

Version:

a package manager for JavaScript

85 lines (68 loc) 2.6 kB
'use strict' const test = require('tap').test const path = require('path') const requireInject = require('require-inject') const configure = requireInject('../lib/configure', { 'graceful-fs': { 'closeSync': function () { 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 } } } }) const dir = path.sep + 'testdir' const readableFile = 'readable_file' const anotherReadableFile = 'another_readable_file' const readableFileInDir = 'somedir' + path.sep + readableFile const 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)) })