67 lines
1.6 KiB
Go
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)
|
|
}
|
|
}
|