Files
wx_service/internal/common/auth/service/auth_service_test.go
T
2026-04-11 01:49:18 +08:00

67 lines
1.6 KiB
Go

package service
import (
"context"
"testing"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"wx_service/internal/model"
)
func newAuthTestDB(t *testing.T) *gorm.DB {
t.Helper()
db, err := gorm.Open(sqlite.Open("file::memory:?cache=shared"), &gorm.Config{})
if err != nil {
t.Fatalf("open sqlite: %v", err)
}
if err := db.AutoMigrate(&model.User{}); err != nil {
t.Fatalf("auto migrate: %v", err)
}
return db
}
func TestAuthServiceUpdateProfilePersistsUserFields(t *testing.T) {
db := newAuthTestDB(t)
svc := NewAuthService(db, nil)
user := model.User{
MiniProgramID: 1,
OpenID: "openid-1",
NickName: "旧昵称",
AvatarURL: "https://example.com/old.png",
SessionKey: "session-1",
}
if err := db.Create(&user).Error; err != nil {
t.Fatalf("seed user: %v", err)
}
updated, err := svc.UpdateProfile(context.Background(), user.ID, "新昵称", "https://example.com/new.png")
if err != nil {
t.Fatalf("update profile: %v", err)
}
if updated.NickName != "新昵称" {
t.Fatalf("expected updated nickname, got %q", updated.NickName)
}
if updated.AvatarURL != "https://example.com/new.png" {
t.Fatalf("expected updated avatar, got %q", updated.AvatarURL)
}
var persisted model.User
if err := db.First(&persisted, user.ID).Error; err != nil {
t.Fatalf("reload user: %v", err)
}
if persisted.NickName != "新昵称" {
t.Fatalf("expected persisted nickname, got %q", persisted.NickName)
}
if persisted.AvatarURL != "https://example.com/new.png" {
t.Fatalf("expected persisted avatar, got %q", persisted.AvatarURL)
}
}