86 lines
2.1 KiB
JavaScript
86 lines
2.1 KiB
JavaScript
|
import path from 'path';
|
||
|
import test from 'ava';
|
||
|
import execa from 'execa';
|
||
|
import cpy from 'cpy';
|
||
|
import del from 'del';
|
||
|
|
||
|
test('local', async t => {
|
||
|
await cpy(
|
||
|
['package.json', 'index.js', 'fixtures/cli.js'],
|
||
|
path.join(__dirname, 'fixtures/local/node_modules/import-local'),
|
||
|
{parents: true}
|
||
|
);
|
||
|
|
||
|
const {stdout} = await execa('import-local-fixture', {
|
||
|
preferLocal: false,
|
||
|
cwd: path.join(__dirname, 'fixtures/local')
|
||
|
});
|
||
|
t.is(stdout, 'local');
|
||
|
|
||
|
await del(path.join(__dirname, 'fixtures/local/node_modules'));
|
||
|
});
|
||
|
|
||
|
test('invoking global prefers local', async t => {
|
||
|
await cpy(
|
||
|
['package.json', 'index.js'],
|
||
|
path.join(__dirname, 'fixtures/prefer-local/node_modules/import-local'),
|
||
|
{parents: true}
|
||
|
);
|
||
|
|
||
|
const {stdout} = await execa(
|
||
|
'node',
|
||
|
[path.join(__dirname, 'fixtures/prefer-local/cli.js')],
|
||
|
{
|
||
|
preferLocal: false,
|
||
|
cwd: path.join(__dirname, 'fixtures/prefer-local/nested')
|
||
|
}
|
||
|
);
|
||
|
t.is(stdout, 'local');
|
||
|
|
||
|
await del(path.join(__dirname, 'fixtures/prefer-local/node_modules'));
|
||
|
});
|
||
|
|
||
|
test('global', async t => {
|
||
|
const {stdout} = await execa('import-local-fixture', {
|
||
|
preferLocal: false,
|
||
|
cwd: path.join(__dirname, 'fixtures/global')
|
||
|
});
|
||
|
t.is(stdout, '');
|
||
|
});
|
||
|
|
||
|
test('treats aliased package as local installation', async t => {
|
||
|
await cpy(
|
||
|
['package.json', 'index.js'],
|
||
|
path.join(__dirname, 'fixtures/yarn-alias/node_modules/import-local'),
|
||
|
{parents: true}
|
||
|
);
|
||
|
const {stdout} = await execa(
|
||
|
'node',
|
||
|
[path.join(__dirname, 'fixtures/yarn-alias/index.js')],
|
||
|
{
|
||
|
preferLocal: false,
|
||
|
cwd: path.join(__dirname, 'fixtures/yarn-alias')
|
||
|
}
|
||
|
);
|
||
|
t.is(stdout, '');
|
||
|
});
|
||
|
|
||
|
// https://github.com/sindresorhus/import-local/pull/5
|
||
|
test('import from node_modules in a parent directory', async t => {
|
||
|
await cpy(
|
||
|
['package.json', 'index.js', 'fixtures/cli.js'],
|
||
|
path.join(__dirname, 'fixtures/5-nested/node_modules/import-local'),
|
||
|
{parents: true}
|
||
|
);
|
||
|
const {stdout} = await execa(
|
||
|
'node',
|
||
|
['index.js'],
|
||
|
{
|
||
|
preferLocal: false,
|
||
|
cwd: path.join(__dirname, 'fixtures/5-nested/foo')
|
||
|
}
|
||
|
);
|
||
|
t.is(stdout, 'Called');
|
||
|
await del(path.join(__dirname, 'fixtures/5-nested/node_modules/import-local'));
|
||
|
});
|