Files
aicommits/tests/utils.ts
2023-03-10 06:12:27 -05:00

64 lines
990 B
TypeScript

import path from 'path';
import { execa, execaNode, type Options } from 'execa';
const aicommitsPath = path.resolve('./dist/cli.mjs');
export const createAicommits = ({
cwd,
home,
}: {
cwd?: string;
home: string;
}) => {
const homeEnv = {
HOME: home, // Linux
USERPROFILE: home, // Windows
};
return (
args?: string[],
options?: Options,
) => execaNode(aicommitsPath, args, {
...options,
cwd,
extendEnv: false,
env: {
...homeEnv,
...options?.env,
},
// Block tsx nodeOptions
nodeOptions: [],
});
};
export const createGit = async (cwd: string) => {
const git = (
command: string,
args?: string[],
options?: Options,
) => (
execa(
'git',
[command, ...(args || [])],
{
cwd,
...options,
},
)
);
await git(
'init',
[
// In case of different default branch name
'--initial-branch=master',
],
);
await git('config', ['user.name', 'name']);
await git('config', ['user.email', 'email']);
return git;
};