# Git CLI Tools Functional Tests

Verify git workflow tools work correctly.

## Prerequisites

```bash
# Check tools are installed
lazygit --version   # lazygit 0.40+
gh --version        # gh 2.x
delta --version     # delta 0.16+
```

---

## gh (GitHub CLI) Tests

### Test 1: Check auth status

```bash
gh auth status
```

**Expected:** Shows authenticated user and scopes

### Test 2: List PRs

```bash
gh pr list --limit 3
```

**Expected:** List of open PRs or "no open pull requests"

### Test 3: View repo info

```bash
gh repo view --json name,description
```

**Expected:** JSON with repo name and description

### Test 4: List issues

```bash
gh issue list --limit 3
```

**Expected:** List of open issues or "no open issues"

---

## delta Tests

### Test 5: Diff with syntax highlighting

```bash
# Create test files
echo 'function hello() { console.log("hello"); }' > /tmp/test1.js
echo 'function hello() { console.log("world"); }' > /tmp/test2.js

# Run delta
diff -u /tmp/test1.js /tmp/test2.js | delta

# Cleanup
rm /tmp/test1.js /tmp/test2.js
```

**Expected:** Colored diff output with syntax highlighting

### Test 6: Git diff with delta

```bash
# In a git repo with changes
git diff | delta
```

**Expected:** Syntax-highlighted diff (or empty if no changes)

---

## lazygit Tests

### Test 7: Launch lazygit (manual)

```bash
# In a git repository
lazygit
```

**Expected:** TUI interface opens showing:
- Status panel
- Files panel
- Branches panel
- Commits panel
- Stash panel

**Key bindings to verify:**
- `q` - Quit
- `?` - Help
- `Space` - Stage/unstage file
- `c` - Commit

---

## Integration Test

### Test: Full PR workflow

```bash
# 1. Check current branch
git branch --show-current

# 2. View recent commits
gh api repos/:owner/:repo/commits --jq '.[0:3] | .[].commit.message'

# 3. Check workflow runs
gh run list --limit 3

# 4. View PR checks (if PR exists)
gh pr checks
```

**Expected:** Each command returns relevant git/GitHub data
