mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-25 07:00:48 +09:00
68 lines
1.4 KiB
Go
68 lines
1.4 KiB
Go
package channel
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/google/uuid"
|
|
|
|
"github.com/memohai/memoh/internal/db"
|
|
)
|
|
|
|
func TestDecodeConfigMap(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
cfg, err := DecodeConfigMap([]byte(`{"a":1}`))
|
|
if err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
if cfg["a"] == nil {
|
|
t.Fatalf("expected key in map")
|
|
}
|
|
cfg, err = DecodeConfigMap([]byte(`null`))
|
|
if err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
if cfg == nil || len(cfg) != 0 {
|
|
t.Fatalf("expected empty map")
|
|
}
|
|
}
|
|
|
|
func TestReadString(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
raw := map[string]any{
|
|
"bot_token": 123,
|
|
}
|
|
got := ReadString(raw, "bot_token")
|
|
if got != "123" {
|
|
t.Fatalf("unexpected value: %s", got)
|
|
}
|
|
}
|
|
|
|
func TestParseUUID(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
id := uuid.NewString()
|
|
if _, err := db.ParseUUID(id); err != nil {
|
|
t.Fatalf("expected no error, got %v", err)
|
|
}
|
|
if _, err := db.ParseUUID("invalid"); err == nil {
|
|
t.Fatalf("expected error, got nil")
|
|
}
|
|
}
|
|
|
|
func TestBindingCriteriaFromIdentity(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
criteria := BindingCriteriaFromIdentity(Identity{
|
|
SubjectID: "u1",
|
|
Attributes: map[string]string{"username": "alice"},
|
|
})
|
|
if criteria.SubjectID != "u1" {
|
|
t.Fatalf("unexpected subject id: %s", criteria.SubjectID)
|
|
}
|
|
if criteria.Attribute("username") != "alice" {
|
|
t.Fatalf("unexpected username: %s", criteria.Attribute("username"))
|
|
}
|
|
}
|