fix(web): #558 修复bind-contact接口字段名,对齐后端BindContactRequest #708
@@ -147,13 +147,14 @@ export interface SendVerificationCodeRequest {
|
||||
}
|
||||
|
||||
export interface BindContactRequest {
|
||||
target: "email" | "phone"
|
||||
value: string
|
||||
code: string
|
||||
email?: string
|
||||
email_code?: string
|
||||
phone?: string
|
||||
phone_code?: string
|
||||
}
|
||||
|
||||
export interface BindContactResponse {
|
||||
message: string
|
||||
success: boolean
|
||||
user: User
|
||||
}
|
||||
|
||||
|
||||
@@ -64,14 +64,12 @@ const BindContactModal: React.FC<BindContactModalProps> = ({ open, onSuccess, on
|
||||
const values = await form.validateFields()
|
||||
setLoading(true)
|
||||
|
||||
const target = activeTab
|
||||
const value = target === "email" ? values.email : values.phone
|
||||
const payload =
|
||||
activeTab === "email"
|
||||
? { email: values.email, email_code: values.code }
|
||||
: { phone: values.phone, phone_code: values.code }
|
||||
|
||||
const result = await bindContact({
|
||||
target,
|
||||
value,
|
||||
code: values.code,
|
||||
})
|
||||
const result = await bindContact(payload)
|
||||
|
||||
message.success("绑定成功")
|
||||
onSuccess?.(result.user)
|
||||
|
||||
@@ -94,7 +94,7 @@ describe("useAuth hooks", () => {
|
||||
expect(typeof result.current.mutateAsync).toBe("function")
|
||||
})
|
||||
|
||||
it("登录成功时保存 token 并调用 setAuth", async () => {
|
||||
it("登录成功时调用 setAuth 并跳转到登录前页面或首页", async () => {
|
||||
mockMutateAsync.mockResolvedValue({
|
||||
access_token: "access-123",
|
||||
refresh_token: "refresh-456",
|
||||
@@ -106,15 +106,15 @@ describe("useAuth hooks", () => {
|
||||
await result.current.mutateAsync({ username: "test", password: "123" })
|
||||
})
|
||||
|
||||
expect(localStorage.getItem("access_token")).toBe("access-123")
|
||||
expect(localStorage.getItem("refresh_token")).toBe("refresh-456")
|
||||
expect(mockSetAuth).toHaveBeenCalled()
|
||||
expect(mockNavigate).toHaveBeenCalledWith("/", { replace: true })
|
||||
})
|
||||
|
||||
it("没有 refresh_token 时从 localStorage 移除", async () => {
|
||||
it("登录成功后跳转到 login_redirect 指定的页面", async () => {
|
||||
localStorage.setItem("login_redirect", "/app/templates")
|
||||
mockMutateAsync.mockResolvedValue({
|
||||
access_token: "access-123",
|
||||
refresh_token: "refresh-456",
|
||||
})
|
||||
|
||||
const { result } = renderHook(() => useLogin(), { wrapper })
|
||||
@@ -123,8 +123,8 @@ describe("useAuth hooks", () => {
|
||||
await result.current.mutateAsync({ username: "test", password: "123" })
|
||||
})
|
||||
|
||||
expect(localStorage.getItem("access_token")).toBe("access-123")
|
||||
expect(localStorage.getItem("refresh_token")).toBeNull()
|
||||
expect(mockNavigate).toHaveBeenCalledWith("/app/templates", { replace: true })
|
||||
expect(localStorage.getItem("login_redirect")).toBeNull()
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user