aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrégoire Duchêne <gduchene@awhk.org>2020-03-26 22:00:40 +0000
committerGrégoire Duchêne <gduchene@awhk.org>2020-03-26 22:00:40 +0000
commit3216dc9b8d876f24ed561e81c2a1fb91926cb57a (patch)
tree9abb98e1741494d4856553335761904f5466baa0
parent0d32b71317472ab5d93aa98f8db02609ed1318bc (diff)
Add a few test cases to lib
-rw-r--r--lib/lib.go11
-rw-r--r--lib/lib_test.go23
2 files changed, 29 insertions, 5 deletions
diff --git a/lib/lib.go b/lib/lib.go
index b066e69..a35cb13 100644
--- a/lib/lib.go
+++ b/lib/lib.go
@@ -12,15 +12,16 @@ import (
)
func GetBody(pkg string) string {
- dest := strings.TrimRight(os.Getenv("DEST"), "/") + "/" + getRepo(pkg)
+ dest := GetDest(os.Getenv("PREFIX"), os.Getenv("DEST"), pkg)
return fmt.Sprintf(`<!doctype html>
<meta name="go-import" content="%s %s %s">
<title>go-import-redirect</title>
`, pkg, os.Getenv("VCS"), dest)
}
-func getRepo(pkg string) string {
- prefix := strings.TrimRight(os.Getenv("PREFIX"), "/")
- path := strings.TrimLeft(strings.TrimPrefix(pkg, prefix), "/")
- return strings.Split(path, "/")[0]
+func GetDest(srcPrefix, destPrefix, pkg string) string {
+ srcPrefix = strings.TrimRight(srcPrefix, "/")
+ destPrefix = strings.TrimRight(destPrefix, "/")
+ path := strings.TrimLeft(strings.TrimPrefix(pkg, srcPrefix), "/")
+ return destPrefix + "/" + strings.Split(path, "/")[0]
}
diff --git a/lib/lib_test.go b/lib/lib_test.go
new file mode 100644
index 0000000..7b46bfb
--- /dev/null
+++ b/lib/lib_test.go
@@ -0,0 +1,23 @@
+// Copyright (c) 2019, Grégoire Duchêne <gduchene@awhk.org>
+//
+// Use of this source code is governed by the ISC license that can be
+// found in the LICENSE file.
+
+package lib
+
+import "testing"
+
+func TestGetDest(t *testing.T) {
+ cs := []struct{ srcPrefix, destPrefix, pkg, expected string }{
+ {"src.example.com/x/", "https://example.com/git/", "src.example.com/x/foo", "https://example.com/git/foo"},
+ {"src.example.com/x/", "https://example.com/git/", "src.example.com/x/foo/bar", "https://example.com/git/foo"},
+ {"src.example.com/x", "https://example.com/git", "src.example.com/x/foo", "https://example.com/git/foo"},
+ {"src.example.com/x", "https://example.com/git", "src.example.com/x/foo/bar", "https://example.com/git/foo"},
+ }
+ for _, c := range cs {
+ actual := GetDest(c.srcPrefix, c.destPrefix, c.pkg)
+ if actual != c.expected {
+ t.Errorf("expected %s, got %s", c.expected, actual)
+ }
+ }
+}