package models import "encoding/json" import "testing" func TestUserJSONTags(t *testing.T) { var u User var data []byte var err error var decoded map[string]interface{} u = User{ ID: "u1", Username: "alice", DisplayName: "Alice", Email: "a@x", IsAdmin: true, Disabled: true, AuthSource: "db", CreatedAt: 1, UpdatedAt: 2, } data, err = json.Marshal(u) if err != nil { t.Fatalf("json marshal error: %v", err) } decoded = map[string]interface{}{} err = json.Unmarshal(data, &decoded) if err != nil { t.Fatalf("json unmarshal error: %v", err) } if _, ok := decoded["display_name"]; !ok { t.Fatalf("missing display_name json key") } if _, ok := decoded["is_admin"]; !ok { t.Fatalf("missing is_admin json key") } if _, ok := decoded["disabled"]; !ok { t.Fatalf("missing disabled json key") } } func TestAPIKeyJSONTags(t *testing.T) { var k APIKey var data []byte var err error var decoded map[string]interface{} k = APIKey{ ID: "k1", UserID: "u1", Name: "n", Prefix: "pre", CreatedAt: 10, LastUsedAt: 11, ExpiresAt: 12, Disabled: true, } data, err = json.Marshal(k) if err != nil { t.Fatalf("json marshal error: %v", err) } decoded = map[string]interface{}{} err = json.Unmarshal(data, &decoded) if err != nil { t.Fatalf("json unmarshal error: %v", err) } if _, ok := decoded["expires_at"]; !ok { t.Fatalf("missing expires_at json key") } if _, ok := decoded["last_used_at"]; !ok { t.Fatalf("missing last_used_at json key") } if _, ok := decoded["disabled"]; !ok { t.Fatalf("missing disabled json key") } }