mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-18 19:16:22 +00:00
60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
package cmd
|
|
|
|
import (
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestResolveRemoteAndFiles(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
repo := initRemoteRepo(t)
|
|
|
|
remote, files, err := resolveRemoteAndFiles(repo, []string{"origin", "content/foo.cc"}, "")
|
|
if err != nil {
|
|
t.Fatalf("resolveRemoteAndFiles: %v", err)
|
|
}
|
|
if remote != "origin" {
|
|
t.Fatalf("expected origin, got %q", remote)
|
|
}
|
|
if !reflect.DeepEqual(files, []string{"content/foo.cc"}) {
|
|
t.Fatalf("unexpected files: %#v", files)
|
|
}
|
|
}
|
|
|
|
func TestResolveRemoteAndFilesUnknownExplicitRemote(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
repo := initRemoteRepo(t)
|
|
if _, _, err := resolveRemoteAndFiles(repo, nil, "missing"); err == nil {
|
|
t.Fatalf("expected error for unknown explicit remote")
|
|
}
|
|
}
|
|
|
|
func initRemoteRepo(t *testing.T) string {
|
|
t.Helper()
|
|
|
|
dir := filepath.Join(t.TempDir(), "patches")
|
|
if err := os.MkdirAll(dir, 0o755); err != nil {
|
|
t.Fatalf("mkdir: %v", err)
|
|
}
|
|
|
|
runGitCmd(t, dir, "init")
|
|
runGitCmd(t, dir, "remote", "add", "origin", "https://example.com/org/repo.git")
|
|
return dir
|
|
}
|
|
|
|
func runGitCmd(t *testing.T, dir string, args ...string) string {
|
|
t.Helper()
|
|
cmd := exec.Command("git", args...)
|
|
cmd.Dir = dir
|
|
out, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
t.Fatalf("git %v failed: %v\n%s", args, err, string(out))
|
|
}
|
|
return string(out)
|
|
}
|