import { describe, it, expect } from 'vitest' import { parseConflicts, resolveConflicts } from '../src/utils/git-conflict-resolver.js' const CONFLICT_TEXT = `import { foo } from './foo' <<<<<<< HEAD const x = 1 ======= const x = 2 >>>>>>> feature export { x }` describe('git-conflict-resolver', () => { it('parses conflicts', () => { const conflicts = parseConflicts(CONFLICT_TEXT) expect(conflicts.length).toBe(1) expect(conflicts[0].ours).toBe('const x = 1') expect(conflicts[0].theirs).toBe('const x = 2') expect(conflicts[0].header).toBe('HEAD') }) it('auto-resolves with ours strategy', () => { const result = resolveConflicts(CONFLICT_TEXT, 'ours') expect(result.success).toBe(true) expect(result.resolution).toContain('const x = 1') expect(result.resolution).not.toContain('<<<<<<<') }) it('auto-resolves with theirs strategy', () => { const result = resolveConflicts(CONFLICT_TEXT, 'theirs') expect(result.success).toBe(true) expect(result.resolution).toContain('const x = 2') }) it('detects no conflicts', () => { const result = resolveConflicts('no conflict here') expect(result.success).toBe(false) expect(result.explanation).toContain('No git conflict markers') }) it('handles multiple conflicts', () => { const multi = `${CONFLICT_TEXT}\n\n${CONFLICT_TEXT.replace('x', 'y')}` const result = resolveConflicts(multi, 'ours') expect(result.success).toBe(true) expect(result.conflictCount).toBe(2) }) })