mirror of
https://github.com/davidkaya/aryx.git
synced 2026-08-07 12:18:44 +02:00
feat: add git workflow backend operations
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
import { describe, expect, test } from 'bun:test';
|
||||
|
||||
import type { ProjectGitRunChangeSummary } from '@shared/domain/project';
|
||||
|
||||
import { buildProjectGitCommitMessageSuggestion } from '@main/git/gitCommitMessageSuggestion';
|
||||
|
||||
const baseSummary: ProjectGitRunChangeSummary = {
|
||||
generatedAt: '2026-03-31T00:00:00.000Z',
|
||||
branchAtStart: 'main',
|
||||
branchAtEnd: 'main',
|
||||
fileCount: 1,
|
||||
additions: 5,
|
||||
deletions: 2,
|
||||
counts: {
|
||||
added: 0,
|
||||
modified: 1,
|
||||
deleted: 0,
|
||||
renamed: 0,
|
||||
copied: 0,
|
||||
typeChanged: 0,
|
||||
unmerged: 0,
|
||||
untracked: 0,
|
||||
cleaned: 0,
|
||||
},
|
||||
files: [
|
||||
{
|
||||
path: 'src\\auth.ts',
|
||||
kind: 'modified',
|
||||
origin: 'run-created',
|
||||
additions: 5,
|
||||
deletions: 2,
|
||||
canRevert: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
describe('buildProjectGitCommitMessageSuggestion', () => {
|
||||
test('infers a fix commit from the triggering user prompt', () => {
|
||||
const suggestion = buildProjectGitCommitMessageSuggestion({
|
||||
session: {
|
||||
title: 'Auth hardening',
|
||||
messages: [
|
||||
{
|
||||
id: 'msg-user-1',
|
||||
role: 'user',
|
||||
authorName: 'You',
|
||||
content: 'Fix auth hardening for git integration.',
|
||||
createdAt: '2026-03-31T00:00:00.000Z',
|
||||
},
|
||||
],
|
||||
},
|
||||
run: {
|
||||
triggerMessageId: 'msg-user-1',
|
||||
},
|
||||
summary: baseSummary,
|
||||
});
|
||||
|
||||
expect(suggestion).toEqual({
|
||||
type: 'fix',
|
||||
subject: 'auth hardening for git integration',
|
||||
message: 'fix: auth hardening for git integration',
|
||||
});
|
||||
});
|
||||
|
||||
test('infers docs commits from documentation-only changes', () => {
|
||||
const suggestion = buildProjectGitCommitMessageSuggestion({
|
||||
session: {
|
||||
title: 'Docs touch-up',
|
||||
messages: [
|
||||
{
|
||||
id: 'msg-user-1',
|
||||
role: 'user',
|
||||
authorName: 'You',
|
||||
content: '',
|
||||
createdAt: '2026-03-31T00:00:00.000Z',
|
||||
},
|
||||
],
|
||||
},
|
||||
run: {
|
||||
triggerMessageId: 'msg-user-1',
|
||||
},
|
||||
summary: {
|
||||
...baseSummary,
|
||||
files: [
|
||||
{
|
||||
path: 'README.md',
|
||||
kind: 'modified',
|
||||
origin: 'run-created',
|
||||
additions: 1,
|
||||
deletions: 0,
|
||||
canRevert: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
expect(suggestion.type).toBe('docs');
|
||||
expect(suggestion.message).toBe('docs: update readme');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user