package changelog import "testing" func TestSanitizeSubject(t *testing.T) { t.Parallel() tests := []struct { name string subject string want string }{ { name: "merge prefix with quotes", subject: "Merge pull request 'Add classes overhaul (#123)'", want: "Add classes overhaul", }, { name: "plain subject", subject: "Add classes overhaul (#123)", want: "Add classes overhaul", }, { name: "double quotes", subject: `Merge pull request "Add classes overhaul (#123)"`, want: "Add classes overhaul", }, } for _, tt := range tests { tt := tt t.Run(tt.name, func(t *testing.T) { t.Parallel() if got := sanitizeSubject(tt.subject); got != tt.want { t.Fatalf("sanitizeSubject(%q) = %q, want %q", tt.subject, got, tt.want) } }) } } func TestOwnerAndRepoFromURL(t *testing.T) { t.Parallel() owner, repo, err := ownerAndRepoFromURL("https://gitea.example.test/org/repo.git") if err != nil { t.Fatalf("ownerAndRepoFromURL returned error: %v", err) } if owner != "org" || repo != "repo" { t.Fatalf("ownerAndRepoFromURL returned %q/%q", owner, repo) } } func TestDeriveAPIBaseURL(t *testing.T) { t.Parallel() got := deriveAPIBaseURL("https://gitea.example.test/org/repo") want := "https://gitea.example.test/api/v1" if got != want { t.Fatalf("deriveAPIBaseURL() = %q, want %q", got, want) } } func TestNormalizeAPIBaseURL(t *testing.T) { t.Parallel() tests := []struct { input string want string }{ {input: "https://gitea.example.test", want: "https://gitea.example.test/api/v1"}, {input: "https://gitea.example.test/api/v1", want: "https://gitea.example.test/api/v1"}, } for _, tt := range tests { if got := normalizeAPIBaseURL(tt.input); got != tt.want { t.Fatalf("normalizeAPIBaseURL(%q) = %q, want %q", tt.input, got, tt.want) } } }