У меня есть инструмент CLI, который генерирует файлы и папки на основе ввода из командной строки. Файлы и папки создаются относительно места, где выполняется скрипт (используя process.cwd()
и path.resolve()
).
Я пытаюсь написать системный тест для него. Поэтому я хочу выполнить функцию точки входа с набором параметров, позволить инструменту сгенерировать файлы и папки, а затем проверить правильность вывода.
Я написал свой тест следующим образом:
import 'core-js/stable';
import 'regenerator-runtime/runtime';
const generate = require('./generate');
describe('My CLI tool', () => {
test('generates correct output', () => {
const answers = {
option: 'Input',
optionBoolean: false,
// etc.
};
await generate(answers);
// I did not get so far yet
// expect().toEqual();
});
});
Проблема, с которой я столкнулся сейчас, заключается в том, что при выполнении моих тестов он генерирует файлы и папки, относящиеся к каталогу root моего проекта инструмента CLI.
Я также пытался создать каталог внутри проекта (например, __temp__
), а затем выполнить тестовые примеры оттуда, но это ничего не изменило.
Я думаю, это потому, что сценарий npm выполняется относительно package.json
?