mirror of
https://github.com/di-sukharev/opencommit.git
synced 2026-01-13 07:38:01 -05:00
* 378: fix hook env (#402) * fix(prepare-commit-msg-hook): update error handling to provide clearer instructions for setting API keys and improve user guidance * Fix: a bug that causes an error when pushing without setting git remote (#396) * refactoring v2 (#408) * 3.2.0 * update deploy commands --------- Co-authored-by: Takanori Matsumoto <matscube@gmail.com>
56 lines
2.4 KiB
TypeScript
56 lines
2.4 KiB
TypeScript
import { resolve } from 'path'
|
|
import { render } from 'cli-testing-library'
|
|
import 'cli-testing-library/extend-expect';
|
|
import { prepareEnvironment } from './utils';
|
|
|
|
it('cli flow to generate commit message for 1 new file (staged)', async () => {
|
|
const { gitDir, cleanup } = await prepareEnvironment();
|
|
|
|
await render('echo' ,[`'console.log("Hello World");' > index.ts`], { cwd: gitDir });
|
|
await render('git' ,['add index.ts'], { cwd: gitDir });
|
|
|
|
const { queryByText, findByText, userEvent } = await render(`OCO_AI_PROVIDER='test' node`, [resolve('./out/cli.cjs')], { cwd: gitDir });
|
|
expect(await queryByText('No files are staged')).not.toBeInTheConsole();
|
|
expect(await queryByText('Do you want to stage all files and generate commit message?')).not.toBeInTheConsole();
|
|
|
|
expect(await findByText('Generating the commit message')).toBeInTheConsole();
|
|
expect(await findByText('Confirm the commit message?')).toBeInTheConsole();
|
|
userEvent.keyboard('[Enter]');
|
|
|
|
expect(await findByText('Do you want to run `git push`?')).toBeInTheConsole();
|
|
userEvent.keyboard('[Enter]');
|
|
|
|
expect(await findByText('Successfully pushed all commits to origin')).toBeInTheConsole();
|
|
|
|
await cleanup();
|
|
});
|
|
|
|
it('cli flow to generate commit message for 1 changed file (not staged)', async () => {
|
|
const { gitDir, cleanup } = await prepareEnvironment();
|
|
|
|
await render('echo' ,[`'console.log("Hello World");' > index.ts`], { cwd: gitDir });
|
|
await render('git' ,['add index.ts'], { cwd: gitDir });
|
|
await render('git' ,[`commit -m 'add new file'`], { cwd: gitDir });
|
|
|
|
await render('echo' ,[`'console.log("Good night World");' >> index.ts`], { cwd: gitDir });
|
|
|
|
const { findByText, userEvent } = await render(`OCO_AI_PROVIDER='test' node`, [resolve('./out/cli.cjs')], { cwd: gitDir });
|
|
|
|
expect(await findByText('No files are staged')).toBeInTheConsole();
|
|
expect(await findByText('Do you want to stage all files and generate commit message?')).toBeInTheConsole();
|
|
userEvent.keyboard('[Enter]');
|
|
|
|
expect(await findByText('Generating the commit message')).toBeInTheConsole();
|
|
expect(await findByText('Confirm the commit message?')).toBeInTheConsole();
|
|
userEvent.keyboard('[Enter]');
|
|
|
|
expect(await findByText('Successfully committed')).toBeInTheConsole();
|
|
|
|
expect(await findByText('Do you want to run `git push`?')).toBeInTheConsole();
|
|
userEvent.keyboard('[Enter]');
|
|
|
|
expect(await findByText('Successfully pushed all commits to origin')).toBeInTheConsole();
|
|
|
|
await cleanup();
|
|
});
|