package apikey import "testing" func TestGenerateValid(t *testing.T) { plain, hash, prefix, err := Generate() if err != nil { t.Fatalf("Generate: %v", err) } if !Valid(plain) { t.Fatalf("generated key invalid: %q", plain) } if len(plain) != len("sk-")+48 { t.Fatalf("unexpected key length: %d", len(plain)) } if Hash(plain) != hash { t.Fatal("hash mismatch") } if prefix != plain[:12] { t.Fatalf("prefix mismatch: %s vs %s", prefix, plain[:12]) } } func TestHashStable(t *testing.T) { if Hash("sk-test") != Hash("sk-test") { t.Fatal("hash not stable") } } func TestValidRejects(t *testing.T) { cases := []string{"", "sk-abc", "abc-123456789012345678901234567890123456789012345678", "sk-1234567890123456789012345678901234567890123456789"} for _, c := range cases { if Valid(c) { t.Fatalf("expected invalid: %q", c) } } }