Monorepo for Tangled
Something went wrong. Try again.
1.8 kB · 66 lines
Go
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667package repoverify
import "testing"
func TestNewRepoDid_RejectsInvalid(t *testing.T) { if _, err := NewRepoDid(""); err == nil { t.Error("NewRepoDid(\"\") err = nil, want error") }}
func TestNewRepoDid_AcceptsValid(t *testing.T) { raw := "did:plc:abc123abc123abc123abc123" got, err := NewRepoDid(raw) if err != nil { t.Fatalf("NewRepoDid(%q): %v", raw, err) } if got.String() != raw { t.Errorf("got %q, want %q", got, raw) }}
func TestParseKnotEndpoint_RejectsHttpInProd(t *testing.T) { if _, err := ParseKnotEndpoint("http://knot.example", false); err == nil { t.Error("http:// knot URL accepted in prod") }}
func TestParseKnotEndpoint_AllowsHttpInDev(t *testing.T) { u, err := ParseKnotEndpoint("http://knot.example", true) if err != nil { t.Fatalf("dev mode should allow http: %v", err) } if u.Host != "knot.example" { t.Errorf("Host = %q, want knot.example", u.Host) }}
func TestParseKnotEndpoint_RejectsUnsupportedScheme(t *testing.T) { if _, err := ParseKnotEndpoint("ftp://knot.example", true); err == nil { t.Error("ParseKnotEndpoint accepted ftp:// in dev") } if _, err := ParseKnotEndpoint("ftp://knot.example", false); err == nil { t.Error("ParseKnotEndpoint accepted ftp:// in prod") }}
func TestParseKnotEndpoint_RejectsEmptyOrHostless(t *testing.T) { cases := []string{"", "https://", "not a url at all"} for _, raw := range cases { t.Run(raw, func(t *testing.T) { if _, err := ParseKnotEndpoint(raw, false); err == nil { t.Errorf("ParseKnotEndpoint(%q) accepted bogus URL", raw) } }) }}
func TestParseKnotEndpoint_HostPreservesPort(t *testing.T) { u, err := ParseKnotEndpoint("http://localhost:3000", true) if err != nil { t.Fatalf("ParseKnotEndpoint: %v", err) } if u.Host != "localhost:3000" { t.Errorf("Host = %q, want localhost:3000", u.Host) }}