package user import ( "testing" "gorm.io/gorm" ) func TestUserTableName(t *testing.T) { var u User if got := u.TableName(); got != "users" { t.Fatalf("unexpected table name: %s", got) } } func TestUserBeforeCreate(t *testing.T) { t.Run("generates id when empty", func(t *testing.T) { u := &User{} if err := u.BeforeCreate(&gorm.DB{}); err != nil { t.Fatalf("BeforeCreate error: %v", err) } if len(u.ID) != 16 { t.Fatalf("expected generated 16-byte ID, got %d", len(u.ID)) } }) t.Run("keeps existing id", func(t *testing.T) { existing := []byte("1234567890abcdef") u := &User{ID: append([]byte(nil), existing...)} if err := u.BeforeCreate(&gorm.DB{}); err != nil { t.Fatalf("BeforeCreate error: %v", err) } if string(u.ID) != string(existing) { t.Fatalf("expected existing id to stay unchanged") } }) }