Files
Memoh/internal/channel/helpers_test.go
T

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"))
}
}