import React from 'react'
import { render, screen, fireEvent } from '@testing-library/react'
import '@testing-library/jest-dom'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import OrderDetail from '../src/pages/OrderDetail/OrderDetail'
import { setupTestEnv } from './__helpers__/local-test-utils'
setupTestEnv()
// 创建测试用的QueryClient
const createTestQueryClient = () => new QueryClient({
defaultOptions: {
queries: {
retry: false,
},
},
})
// 测试包装器组件
const TestWrapper = ({ children }: { children: React.ReactNode }) => {
const queryClient = createTestQueryClient()
return (
{children}
)
}
// 包装的render函数
const renderWithQueryClient = (component: React.ReactElement) => {
return render({component})
}
// Mock Taro组件
jest.mock('@tarojs/components', () => ({
View: ({ children, className, ...props }: any) => (
{children}
),
Text: ({ children, className, ...props }: any) => (
{children}
),
ScrollView: ({ children, className, scrollY, ...props }: any) => (
{children}
),
Button: ({ children, className, onClick, ...props }: any) => (
),
Input: ({ className, placeholder, value, onInput, ...props }: any) => (
onInput?.({ detail: { value: e.target.value } })}
{...props}
/>
),
Textarea: ({ className, placeholder, value, onInput, ...props }: any) => (