Я пишу инструмент Cli и пытаюсь написать тесты для него в Jest.У меня есть некоторые функции, которые вызывают git, но мне нужно смоделировать результаты этих вызовов, иначе они не будут согласованными.
Код, который я использую для вызова оболочки, выглядит следующим образом.
import { exec } from "child_process";
function execute(command) {
return new Promise((resolve, reject) => {
exec(command, resolve);
});
}
export const getGitDiff = function () {
return execute("git diff")
};
Как мне написать тест для этого в Jest?
То, что я пробовал, было
import { getGitDiff } from './getGitDiff';
describe('get git diff', () => {
it('should send "git diff" to stdin', () => {
const spy = jest.spyOn(process.stdin, 'write');
return getGitDiff().then(() => {
expect(spy).toHaveBeenCalled();
})
});
});