package git import ( "context" "path/filepath" "testing" "time" "github.com/stretchr/testify/require" ) func TestClone_Success(t *testing.T) { t.Parallel() gitAvailable(t) bare := makeBareRepo(t) r := newTestRunner(t) dst := filepath.Join(t.TempDir(), "wc") ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() require.NoError(t, r.Clone(ctx, dst, bare, "main", nil)) require.FileExists(t, filepath.Join(dst, "README.md")) } func TestClone_BadURL(t *testing.T) { t.Parallel() gitAvailable(t) r := newTestRunner(t) ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() err := r.Clone(ctx, filepath.Join(t.TempDir(), "x"), "/no/such/path/repo.git", "main", nil) require.Error(t, err) }