feat(auth): add mini program test code endpoint (#51)
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user