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