feat: implement repo create command

This commit is contained in:
Romain Bertrand 2026-03-10 15:40:22 +01:00
parent 73d54fde9c
commit a43a79d78f
4 changed files with 248 additions and 2 deletions

53
cmd/repo_create_test.go Normal file
View file

@ -0,0 +1,53 @@
package cmd
import "testing"
func TestParseCreateName(t *testing.T) {
t.Run("simple repo name", func(t *testing.T) {
org, repo, isOrg, err := parseCreateName("myrepo")
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if org != "" || repo != "myrepo" || isOrg {
t.Errorf("got (%q, %q, %v), want (%q, %q, %v)", org, repo, isOrg, "", "myrepo", false)
}
})
t.Run("org/repo name", func(t *testing.T) {
org, repo, isOrg, err := parseCreateName("myorg/myrepo")
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if org != "myorg" || repo != "myrepo" || !isOrg {
t.Errorf("got (%q, %q, %v), want (%q, %q, %v)", org, repo, isOrg, "myorg", "myrepo", true)
}
})
t.Run("empty string", func(t *testing.T) {
_, _, _, err := parseCreateName("")
if err == nil {
t.Error("expected error for empty string, got nil")
}
})
t.Run("slash only", func(t *testing.T) {
_, _, _, err := parseCreateName("/")
if err == nil {
t.Error("expected error for '/', got nil")
}
})
t.Run("empty repo after slash", func(t *testing.T) {
_, _, _, err := parseCreateName("org/")
if err == nil {
t.Error("expected error for 'org/', got nil")
}
})
t.Run("empty org before slash", func(t *testing.T) {
_, _, _, err := parseCreateName("/repo")
if err == nil {
t.Error("expected error for '/repo', got nil")
}
})
}