Files
goreportcard/download/proxy_test.go

55 lines
1.1 KiB
Go

package download
import (
"fmt"
"net/http"
"net/http/httptest"
"testing"
)
func TestModuleName(t *testing.T) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
u := r.URL
switch u.Path {
case "/github.com/user/module/@latest":
fmt.Fprintf(w, `{"Version":"v0.1.0","Time":"2019-08-07T08:30:46Z"}`)
return
case "/github.com/user/module/@v/v0.1.0.mod":
fmt.Fprintf(w, `module github.com/user/module`)
return
}
}))
defer ts.Close()
c := NewProxyClient(ts.URL)
got, err := c.ModuleName("github.com/user/module")
if err != nil {
t.Fatal(err)
}
want := "github.com/user/module"
if got != want {
t.Errorf("got module name = %q, want %q", got, want)
}
}
func TestLatestVersion(t *testing.T) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, `{"Version":"v0.1.0","Time":"2019-08-07T08:30:46Z"}`)
}))
defer ts.Close()
c := NewProxyClient(ts.URL)
got, err := c.LatestVersion("github.com/user/module")
if err != nil {
t.Fatal(err)
}
want := "v0.1.0"
if got != want {
t.Errorf("got latest version = %q, want %q", got, want)
}
}