feat: add member URL pool and login tracking
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package sys
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestNormalizeRegisterURL(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
raw string
|
||||
domain string
|
||||
baseURL string
|
||||
wantErr bool
|
||||
}{
|
||||
{name: "default register path", raw: "https://Example.COM", domain: "example.com", baseURL: "https://example.com/register"},
|
||||
{name: "keep custom port", raw: "http://example.com:8080/signup", domain: "example.com:8080", baseURL: "http://example.com:8080/signup"},
|
||||
{name: "drop default port", raw: "https://example.com:443/register", domain: "example.com", baseURL: "https://example.com/register"},
|
||||
{name: "reject query", raw: "https://example.com/register?code=1", wantErr: true},
|
||||
{name: "reject non http", raw: "ftp://example.com/register", wantErr: true},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
_, domain, baseURL, err := normalizeRegisterURL(tt.raw)
|
||||
if tt.wantErr {
|
||||
if err == nil {
|
||||
t.Fatalf("normalizeRegisterURL(%q) expected error", tt.raw)
|
||||
}
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
t.Fatalf("normalizeRegisterURL(%q) returned error: %v", tt.raw, err)
|
||||
}
|
||||
if domain != tt.domain || baseURL != tt.baseURL {
|
||||
t.Fatalf("normalizeRegisterURL(%q) = domain %q, baseURL %q", tt.raw, domain, baseURL)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveRequestDomainPrefersOrigin(t *testing.T) {
|
||||
domain, origin, err := resolveRequestDomain("https://REGISTER.example.com", "ignored.example.com")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if domain != "register.example.com" || origin != "https://register.example.com" {
|
||||
t.Fatalf("unexpected domain resolution: %q %q", domain, origin)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFindUrlPoolImportColumns(t *testing.T) {
|
||||
nameColumn, urlColumn, remarkColumn := findUrlPoolImportColumns([]string{"\ufeff地址名称", "注册入口URL", "备注"})
|
||||
if nameColumn != 0 || urlColumn != 1 || remarkColumn != 2 {
|
||||
t.Fatalf("unexpected import columns: name=%d url=%d remark=%d", nameColumn, urlColumn, remarkColumn)
|
||||
}
|
||||
|
||||
nameColumn, urlColumn, remarkColumn = findUrlPoolImportColumns([]string{"NAME", "base_url"})
|
||||
if nameColumn != 0 || urlColumn != 1 || remarkColumn != -1 {
|
||||
t.Fatalf("unexpected alias columns: name=%d url=%d remark=%d", nameColumn, urlColumn, remarkColumn)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user