|
|
@@ -126,8 +126,8 @@ describe('额度支付流程集成测试', () => {
|
|
|
|
|
|
// 1. 验证页面加载和额度显示
|
|
|
await waitFor(() => {
|
|
|
- expect(screen.getByText('支付订单')).toBeInTheDocument()
|
|
|
- expect(screen.getByText('可用额度: ¥800.00')).toBeInTheDocument()
|
|
|
+ expect(screen.getByTestId('payment-page-title')).toBeInTheDocument()
|
|
|
+ expect(screen.getByTestId('available-amount-text')).toHaveTextContent(/可用额度: ¥800\.00/)
|
|
|
})
|
|
|
|
|
|
// 2. 选择额度支付方式
|
|
|
@@ -136,17 +136,18 @@ describe('额度支付流程集成测试', () => {
|
|
|
|
|
|
await waitFor(() => {
|
|
|
expect(creditOption).toHaveClass('border-blue-500')
|
|
|
- expect(screen.getByText('额度支付 ¥100.00')).toBeInTheDocument()
|
|
|
+ expect(screen.getByTestId('pay-button')).toHaveTextContent('额度支付 ¥100.00')
|
|
|
})
|
|
|
|
|
|
// 3. 验证额度详情显示
|
|
|
- expect(screen.getByText('• 使用信用额度支付,无需立即付款')).toBeInTheDocument()
|
|
|
- expect(screen.getByText('• 可用额度: ¥800.00')).toBeInTheDocument()
|
|
|
- expect(screen.getByText('• 总额度: ¥1000.00')).toBeInTheDocument()
|
|
|
- expect(screen.getByText('• 已用额度: ¥200.00')).toBeInTheDocument()
|
|
|
+ const creditDetails = screen.getByTestId('credit-payment-details')
|
|
|
+ expect(creditDetails).toHaveTextContent(/使用信用额度支付,无需立即付款/)
|
|
|
+ expect(creditDetails).toHaveTextContent(/可用额度: ¥800\.00/)
|
|
|
+ expect(creditDetails).toHaveTextContent(/总额度: ¥1000\.00/)
|
|
|
+ expect(creditDetails).toHaveTextContent(/已用额度: ¥200\.00/)
|
|
|
|
|
|
// 4. 点击支付按钮
|
|
|
- const payButton = screen.getByText('额度支付 ¥100.00')
|
|
|
+ const payButton = screen.getByTestId('pay-button')
|
|
|
fireEvent.click(payButton)
|
|
|
|
|
|
// 5. 验证支付处理中状态
|
|
|
@@ -167,7 +168,8 @@ describe('额度支付流程集成测试', () => {
|
|
|
|
|
|
// 7. 验证支付成功状态
|
|
|
await waitFor(() => {
|
|
|
- expect(screen.getByText('支付成功')).toBeInTheDocument()
|
|
|
+ // 使用类名选择器找到支付成功状态文本
|
|
|
+ expect(screen.getByText('支付成功', { selector: 'span.text-xl' })).toBeInTheDocument()
|
|
|
})
|
|
|
|
|
|
// 8. 验证跳转到成功页面
|
|
|
@@ -211,7 +213,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
|
|
|
// 等待页面加载
|
|
|
await waitFor(() => {
|
|
|
- expect(screen.getByText('可用额度: ¥800.00')).toBeInTheDocument()
|
|
|
+ expect(screen.getByTestId('available-amount-text')).toHaveTextContent(/可用额度: ¥800\.00/)
|
|
|
})
|
|
|
|
|
|
// 选择额度支付
|
|
|
@@ -219,7 +221,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
fireEvent.click(creditOption!)
|
|
|
|
|
|
// 点击支付按钮(第一次失败)
|
|
|
- const payButton = screen.getByText('额度支付 ¥100.00')
|
|
|
+ const payButton = screen.getByTestId('pay-button')
|
|
|
fireEvent.click(payButton)
|
|
|
|
|
|
// 验证显示错误信息
|
|
|
@@ -261,7 +263,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
|
|
|
// 等待页面加载
|
|
|
await waitFor(() => {
|
|
|
- expect(screen.getByText('可用额度: ¥5.00 (不足)')).toBeInTheDocument()
|
|
|
+ expect(screen.getByTestId('available-amount-text')).toHaveTextContent(/可用额度: ¥5\.00 \(不足\)/)
|
|
|
})
|
|
|
|
|
|
// 验证额度支付选项被禁用
|
|
|
@@ -273,7 +275,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
expect(creditOption).not.toHaveClass('border-blue-500')
|
|
|
|
|
|
// 验证支付按钮被禁用
|
|
|
- const payButton = screen.getByText('额度支付 ¥100.00')
|
|
|
+ const payButton = screen.getByTestId('pay-button')
|
|
|
expect(payButton).toBeDisabled()
|
|
|
})
|
|
|
|
|
|
@@ -306,7 +308,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
expect(creditOption).toHaveClass('opacity-50')
|
|
|
|
|
|
// 验证支付按钮被禁用
|
|
|
- const payButton = screen.getByText('额度支付 ¥100.00')
|
|
|
+ const payButton = screen.getByTestId('pay-button')
|
|
|
expect(payButton).toBeDisabled()
|
|
|
})
|
|
|
|
|
|
@@ -333,7 +335,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
|
|
|
// 等待页面加载
|
|
|
await waitFor(() => {
|
|
|
- expect(screen.getByText('可用额度: ¥800.00')).toBeInTheDocument()
|
|
|
+ expect(screen.getByTestId('available-amount-text')).toHaveTextContent(/可用额度: ¥800\.00/)
|
|
|
})
|
|
|
|
|
|
// 初始为微信支付选中
|
|
|
@@ -347,7 +349,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
|
|
|
await waitFor(() => {
|
|
|
expect(creditOption).toHaveClass('border-blue-500')
|
|
|
- expect(screen.getByText('额度支付 ¥100.00')).toBeInTheDocument()
|
|
|
+ expect(screen.getByTestId('pay-button')).toHaveTextContent('额度支付 ¥100.00')
|
|
|
})
|
|
|
|
|
|
// 验证额度详情显示
|
|
|
@@ -358,7 +360,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
|
|
|
await waitFor(() => {
|
|
|
expect(wechatOption).toHaveClass('border-blue-500')
|
|
|
- expect(screen.getByText('微信支付 ¥100.00')).toBeInTheDocument()
|
|
|
+ expect(screen.getByTestId('pay-button')).toHaveTextContent('微信支付 ¥100.00')
|
|
|
})
|
|
|
|
|
|
// 验证额度详情隐藏
|
|
|
@@ -386,7 +388,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
expect(creditOption).toHaveClass('opacity-50')
|
|
|
|
|
|
// 验证支付按钮被禁用
|
|
|
- const payButton = screen.getByText('额度支付 ¥100.00')
|
|
|
+ const payButton = screen.getByTestId('pay-button')
|
|
|
expect(payButton).toBeDisabled()
|
|
|
})
|
|
|
|
|
|
@@ -413,7 +415,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
|
|
|
// 等待页面加载
|
|
|
await waitFor(() => {
|
|
|
- expect(screen.getByText('可用额度: ¥800.00')).toBeInTheDocument()
|
|
|
+ expect(screen.getByTestId('available-amount-text')).toHaveTextContent(/可用额度: ¥800\.00/)
|
|
|
})
|
|
|
|
|
|
// 选择额度支付
|
|
|
@@ -421,7 +423,7 @@ describe('额度支付流程集成测试', () => {
|
|
|
fireEvent.click(creditOption!)
|
|
|
|
|
|
// 点击支付按钮
|
|
|
- const payButton = screen.getByText('额度支付 ¥100.00')
|
|
|
+ const payButton = screen.getByTestId('pay-button')
|
|
|
fireEvent.click(payButton)
|
|
|
|
|
|
// 验证支付处理中状态
|