You've already forked agentic-coding-workflow
bugfix
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package git
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestListTrackedFiles(t *testing.T) {
|
||||
gitAvailable(t)
|
||||
dir := t.TempDir()
|
||||
mustGit(t, dir, "init", "-b", "main")
|
||||
mustGit(t, dir, "config", "user.email", "test@example.com")
|
||||
mustGit(t, dir, "config", "user.name", "Test")
|
||||
require.NoError(t, os.WriteFile(filepath.Join(dir, "a.go"), []byte("package a\n"), 0o644))
|
||||
require.NoError(t, os.MkdirAll(filepath.Join(dir, "sub"), 0o755))
|
||||
require.NoError(t, os.WriteFile(filepath.Join(dir, "sub", "b.txt"), []byte("b\n"), 0o644))
|
||||
// Untracked + ignored files must NOT appear.
|
||||
require.NoError(t, os.WriteFile(filepath.Join(dir, ".gitignore"), []byte("ignored.txt\n"), 0o644))
|
||||
require.NoError(t, os.WriteFile(filepath.Join(dir, "ignored.txt"), []byte("x\n"), 0o644))
|
||||
require.NoError(t, os.WriteFile(filepath.Join(dir, "untracked.txt"), []byte("y\n"), 0o644))
|
||||
mustGit(t, dir, "add", "a.go", "sub/b.txt", ".gitignore")
|
||||
mustGit(t, dir, "commit", "-m", "init")
|
||||
|
||||
r := newTestRunner(t)
|
||||
files, err := r.ListTrackedFiles(context.Background(), dir)
|
||||
require.NoError(t, err)
|
||||
sort.Strings(files)
|
||||
require.Equal(t, []string{".gitignore", "a.go", "sub/b.txt"}, files)
|
||||
}
|
||||
|
||||
func TestDiffStat(t *testing.T) {
|
||||
gitAvailable(t)
|
||||
dir := t.TempDir()
|
||||
mustGit(t, dir, "init", "-b", "main")
|
||||
mustGit(t, dir, "config", "user.email", "test@example.com")
|
||||
mustGit(t, dir, "config", "user.name", "Test")
|
||||
require.NoError(t, os.WriteFile(filepath.Join(dir, "f.go"), []byte("package f\n\nfunc F() {}\n"), 0o644))
|
||||
mustGit(t, dir, "add", "f.go")
|
||||
mustGit(t, dir, "commit", "-m", "add F")
|
||||
|
||||
r := newTestRunner(t)
|
||||
// HEAD resolves the just-made commit.
|
||||
commits, err := r.Log(context.Background(), dir, 1)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, commits, 1)
|
||||
|
||||
stat, err := r.DiffStat(context.Background(), dir, commits[0].Hash)
|
||||
require.NoError(t, err)
|
||||
require.Contains(t, stat, "f.go")
|
||||
require.Contains(t, stat, "add F") // subject from --format
|
||||
}
|
||||
Reference in New Issue
Block a user