node-jest/import-local/test.js

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'));
});