|
@@ -6,17 +6,7 @@ import React from 'react'
|
|
|
import { render, screen, fireEvent } from '@testing-library/react'
|
|
import { render, screen, fireEvent } from '@testing-library/react'
|
|
|
import '@testing-library/jest-dom'
|
|
import '@testing-library/jest-dom'
|
|
|
import PaySuccessPage from '@/pages/pay-success/index'
|
|
import PaySuccessPage from '@/pages/pay-success/index'
|
|
|
-
|
|
|
|
|
-// Mock Taro相关API
|
|
|
|
|
-const mockNavigateTo = jest.fn()
|
|
|
|
|
-const mockUseRouter = jest.fn()
|
|
|
|
|
-const mockUseLoad = jest.fn()
|
|
|
|
|
-
|
|
|
|
|
-jest.mock('@tarojs/taro', () => ({
|
|
|
|
|
- useRouter: () => mockUseRouter(),
|
|
|
|
|
- navigateTo: mockNavigateTo,
|
|
|
|
|
- useLoad: (callback: any) => mockUseLoad(callback)
|
|
|
|
|
-}))
|
|
|
|
|
|
|
+import { mockSwitchTab, mockUseRouter, mockUseLoad } from '../__mocks__/taroMock'
|
|
|
|
|
|
|
|
describe('PaySuccessPage', () => {
|
|
describe('PaySuccessPage', () => {
|
|
|
beforeEach(() => {
|
|
beforeEach(() => {
|
|
@@ -32,7 +22,7 @@ describe('PaySuccessPage', () => {
|
|
|
if (callback) callback()
|
|
if (callback) callback()
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
- mockNavigateTo.mockClear()
|
|
|
|
|
|
|
+ mockSwitchTab.mockClear()
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
it('should render payment success page correctly', () => {
|
|
it('should render payment success page correctly', () => {
|
|
@@ -50,8 +40,8 @@ describe('PaySuccessPage', () => {
|
|
|
const viewOrderButton = screen.getByText('查看订单')
|
|
const viewOrderButton = screen.getByText('查看订单')
|
|
|
fireEvent.click(viewOrderButton)
|
|
fireEvent.click(viewOrderButton)
|
|
|
|
|
|
|
|
- expect(mockNavigateTo).toHaveBeenCalledWith({
|
|
|
|
|
- url: '/pages/orders/orders'
|
|
|
|
|
|
|
+ expect(mockSwitchTab).toHaveBeenCalledWith({
|
|
|
|
|
+ url: '/pages/orders/index'
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
|
|
|
|
|
@@ -61,7 +51,7 @@ describe('PaySuccessPage', () => {
|
|
|
const backToHomeButton = screen.getByText('返回首页')
|
|
const backToHomeButton = screen.getByText('返回首页')
|
|
|
fireEvent.click(backToHomeButton)
|
|
fireEvent.click(backToHomeButton)
|
|
|
|
|
|
|
|
- expect(mockNavigateTo).toHaveBeenCalledWith({
|
|
|
|
|
|
|
+ expect(mockSwitchTab).toHaveBeenCalledWith({
|
|
|
url: '/pages/home/index'
|
|
url: '/pages/home/index'
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
@@ -117,17 +107,7 @@ describe('PaySuccessPage', () => {
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
it('should handle navigation back', () => {
|
|
it('should handle navigation back', () => {
|
|
|
- const mockNavigateBack = jest.fn()
|
|
|
|
|
- jest.doMock('@tarojs/taro', () => ({
|
|
|
|
|
- useRouter: () => mockUseRouter(),
|
|
|
|
|
- navigateTo: mockNavigateTo,
|
|
|
|
|
- useLoad: (callback: any) => mockUseLoad(callback),
|
|
|
|
|
- navigateBack: mockNavigateBack
|
|
|
|
|
- }))
|
|
|
|
|
-
|
|
|
|
|
- render(<PaySuccessPage />)
|
|
|
|
|
-
|
|
|
|
|
- // 这里需要模拟导航栏返回按钮的点击
|
|
|
|
|
- // 由于组件结构,可能需要通过不同的方式触发
|
|
|
|
|
|
|
+ // 这个测试目前没有实际功能,因为组件中没有使用 navigateBack
|
|
|
|
|
+ // 如果需要测试导航返回功能,需要先实现对应的组件逻辑
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|