Files
codit/backend/internal/models/models_json_test.go

76 lines
1.6 KiB
Go

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