first commit
This commit is contained in:
55
internal/user/model_test.go
Normal file
55
internal/user/model_test.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package user
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestValidateUsername(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
ok bool
|
||||
}{
|
||||
{"alice", true},
|
||||
{"al-ice_42", true},
|
||||
{"a", true},
|
||||
{"", false},
|
||||
{"-alice", false},
|
||||
{"_alice", false},
|
||||
{"thisusernameiswaytoolongtobevalid12345", false},
|
||||
{"admin", false},
|
||||
}
|
||||
reserved := []string{"admin", "root"}
|
||||
for _, tc := range cases {
|
||||
err := ValidateUsername(tc.name, reserved)
|
||||
if tc.ok && err != nil {
|
||||
t.Errorf("%q expected ok, got %v", tc.name, err)
|
||||
}
|
||||
if !tc.ok && err == nil {
|
||||
t.Errorf("%q expected fail", tc.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestProvisionalUsername(t *testing.T) {
|
||||
const pk = "0e8c41ebcd55a8d8db2e0a8c3a4b9c5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c"
|
||||
got := ProvisionalUsername(pk)
|
||||
want := "u_0e8c41ebcd55a8d8"
|
||||
if got != want {
|
||||
t.Fatalf("got %q want %q", got, want)
|
||||
}
|
||||
if err := ValidateUsername(got, nil); err != nil {
|
||||
t.Fatalf("provisional name should validate: %v", err)
|
||||
}
|
||||
|
||||
short := ProvisionalUsername("AbC")
|
||||
if short != "u_abc" {
|
||||
t.Errorf("expected lowercase trimmed prefix, got %q", short)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSubscriptionType(t *testing.T) {
|
||||
if !SubYearly.Valid() || !SubLifetime.Valid() {
|
||||
t.Fatal("valid types reported invalid")
|
||||
}
|
||||
if SubscriptionType("monthly").Valid() {
|
||||
t.Fatal("invalid type reported valid")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user