2020-08-20 11:20:04 +08:00
|
|
|
import test from 'ava';
|
2022-06-24 15:25:56 +08:00
|
|
|
import resolveFrom from '.';
|
2020-08-20 11:20:04 +08:00
|
|
|
|
|
|
|
|
test('resolveFrom()', t => {
|
2022-06-24 15:25:56 +08:00
|
|
|
t.throws(() => resolveFrom(1, './fixture'), /got `number`/);
|
|
|
|
|
t.throws(() => resolveFrom('fixture'), /got `undefined`/);
|
2020-08-20 11:20:04 +08:00
|
|
|
|
2022-06-24 15:25:56 +08:00
|
|
|
t.regex(resolveFrom('fixture', './fixture'), /fixture\/fixture\.js$/);
|
2020-08-20 11:20:04 +08:00
|
|
|
|
|
|
|
|
const moduleNotFoundError = t.throws(() => {
|
2022-06-24 15:25:56 +08:00
|
|
|
resolveFrom('fixture', './nonexistent');
|
2020-08-20 11:20:04 +08:00
|
|
|
}, Error);
|
|
|
|
|
t.is(moduleNotFoundError.code, 'MODULE_NOT_FOUND');
|
|
|
|
|
t.is(moduleNotFoundError.message, 'Cannot find module \'./nonexistent\'');
|
|
|
|
|
|
2022-06-24 15:25:56 +08:00
|
|
|
const resolveFromfixture = resolveFrom.bind(null, 'fixture');
|
2020-08-20 11:20:04 +08:00
|
|
|
t.regex(resolveFromfixture('./fixture'), /fixture\/fixture\.js$/);
|
|
|
|
|
|
2022-06-24 15:25:56 +08:00
|
|
|
t.truthy(resolveFrom('./fixture/fixture-for-symlinks/symlink-target', 'foo'));
|
2020-08-20 11:20:04 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
test('resolveFrom.silent()', t => {
|
2022-06-24 15:25:56 +08:00
|
|
|
t.regex(resolveFrom.silent('fixture', './fixture'), /fixture\/fixture\.js$/);
|
|
|
|
|
t.is(resolveFrom.silent('fixture', './nonexistent'), undefined);
|
2020-08-20 11:20:04 +08:00
|
|
|
|
2022-06-24 15:25:56 +08:00
|
|
|
const silentResolveFromfixture = resolveFrom.silent.bind(null, 'fixture');
|
2020-08-20 11:20:04 +08:00
|
|
|
t.regex(silentResolveFromfixture('./fixture'), /fixture\/fixture\.js$/);
|
|
|
|
|
|
2022-06-24 15:25:56 +08:00
|
|
|
t.is(resolveFrom.silent('fixture-not-exists', './fixture'), undefined);
|
2020-08-20 11:20:04 +08:00
|
|
|
});
|