diff --git a/internal/util/url_test.go b/internal/util/url_test.go new file mode 100644 index 00000000..92b62894 --- /dev/null +++ b/internal/util/url_test.go @@ -0,0 +1,35 @@ +package util + +import ( + "net/url" + "reflect" + "testing" +) + +func TestURLToGitHubProject(t *testing.T) { + tests := []struct { + name string + subpath string + }{ + {"Repository root", ""}, + {"Releases", "/releases"}, + {"Release v3.0.0", "/releases/v3.0.0"}, + {"Supported clients", "/wiki/Supported-clients"}, + } + + const basepath = https + "://" + github + repo + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + path := basepath + tt.subpath + want, err := url.Parse(path) + if err != nil { + t.Errorf("Failed to parse the path %s: %v", path, err) + return + } + + if got := URLToGitHubProject(tt.subpath); !reflect.DeepEqual(got, want) { + t.Errorf("URLToGitHubProject() = %v, want %v", got, want) + } + }) + } +}