feat: 新用户默认昵称及个人中心加载状态修复
- 新用户注册时随机生成普拉提主题默认昵称(16 个可选) - 修复 App 启动后个人中心首次进入不展示用户信息的 bug - loggedIn 改为仅依赖 token 是否存在 - 新增 hasProfile 判断用户数据是否已加载 - 未加载时显示骨架屏而非空白 - 抽离随机函数为可注入依赖,消除 Math.random 测试耦合
This commit is contained in:
@@ -2,7 +2,7 @@ import { Test, TestingModule } from '@nestjs/testing'
|
||||
import { JwtService } from '@nestjs/jwt'
|
||||
import { UnauthorizedException } from '@nestjs/common'
|
||||
import { UserRole } from '@mp-pilates/shared'
|
||||
import { AuthService } from '../auth.service'
|
||||
import { AuthService, RANDOM_FN_TOKEN } from '../auth.service'
|
||||
import { WechatService } from '../wechat.service'
|
||||
import { PrismaService } from '../../prisma/prisma.service'
|
||||
|
||||
@@ -12,13 +12,14 @@ const OPENID = 'test_openid_123'
|
||||
const SESSION_KEY = 'test_session_key'
|
||||
const USER_ID = 'user-uuid-001'
|
||||
const JWT_TOKEN = 'signed.jwt.token'
|
||||
const TEST_NICKNAME = '优雅普拉提'
|
||||
|
||||
const mockUser = {
|
||||
id: USER_ID,
|
||||
openid: OPENID,
|
||||
unionid: null,
|
||||
phone: null,
|
||||
nickname: '',
|
||||
nickname: TEST_NICKNAME,
|
||||
avatarUrl: null,
|
||||
role: UserRole.MEMBER,
|
||||
createdAt: new Date(),
|
||||
@@ -57,6 +58,7 @@ describe('AuthService', () => {
|
||||
{ provide: PrismaService, useValue: mockPrismaService },
|
||||
{ provide: WechatService, useValue: mockWechatService },
|
||||
{ provide: JwtService, useValue: mockJwtService },
|
||||
{ provide: RANDOM_FN_TOKEN, useValue: () => 0 }, // deterministic nickname
|
||||
],
|
||||
}).compile()
|
||||
|
||||
@@ -89,7 +91,7 @@ describe('AuthService', () => {
|
||||
where: { openid: OPENID },
|
||||
})
|
||||
expect(mockPrismaService.user.create).toHaveBeenCalledWith({
|
||||
data: { openid: OPENID },
|
||||
data: { openid: OPENID, nickname: TEST_NICKNAME },
|
||||
})
|
||||
expect(result.user).toEqual(mockUser)
|
||||
})
|
||||
@@ -107,7 +109,7 @@ describe('AuthService', () => {
|
||||
await authService.login(loginCode)
|
||||
|
||||
expect(mockPrismaService.user.create).toHaveBeenCalledWith({
|
||||
data: { openid: OPENID, unionid },
|
||||
data: { openid: OPENID, unionid, nickname: TEST_NICKNAME },
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user