|
|
@@ -522,7 +522,7 @@ describe('信用额度管理对话框集成测试', () => {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
- it('应该处理API错误', async () => {
|
|
|
+ it('应该处理获取信用额度API错误', async () => {
|
|
|
const { toast } = await import('sonner');
|
|
|
|
|
|
// Mock API error
|
|
|
@@ -541,10 +541,13 @@ describe('信用额度管理对话框集成测试', () => {
|
|
|
|
|
|
// 应该显示错误提示
|
|
|
await waitFor(() => {
|
|
|
- expect(toast.error).toHaveBeenCalledWith('获取信用额度失败');
|
|
|
- });
|
|
|
+ expect(toast.error).toHaveBeenCalledWith('获取信用额度失败: 获取信用额度失败');
|
|
|
+ }, { timeout: 3000 });
|
|
|
+ });
|
|
|
+
|
|
|
+ it('应该处理设置额度API错误', async () => {
|
|
|
+ const { toast } = await import('sonner');
|
|
|
|
|
|
- // 测试设置额度API错误
|
|
|
const mockBalanceData = {
|
|
|
id: 1,
|
|
|
userId: 123,
|
|
|
@@ -556,14 +559,25 @@ describe('信用额度管理对话框集成测试', () => {
|
|
|
updatedAt: '2024-01-01T00:00:00Z'
|
|
|
};
|
|
|
|
|
|
+ // Mock 成功获取额度数据
|
|
|
(creditBalanceClient[':userId'].$get as any).mockResolvedValue(
|
|
|
createMockResponse(200, mockBalanceData)
|
|
|
);
|
|
|
|
|
|
+ // Mock 设置额度API错误
|
|
|
(creditBalanceClient[':userId'].$put as any).mockRejectedValue(
|
|
|
new Error('设置额度失败')
|
|
|
);
|
|
|
|
|
|
+ renderWithProviders(
|
|
|
+ <CreditBalanceDialog
|
|
|
+ userId={123}
|
|
|
+ userName="测试用户"
|
|
|
+ open={true}
|
|
|
+ onOpenChange={() => {}}
|
|
|
+ />
|
|
|
+ );
|
|
|
+
|
|
|
// 等待初始数据加载
|
|
|
await waitFor(() => {
|
|
|
expect(screen.getByTestId('total-limit-card')).toBeInTheDocument();
|
|
|
@@ -588,7 +602,7 @@ describe('信用额度管理对话框集成测试', () => {
|
|
|
fireEvent.click(setLimitButton);
|
|
|
|
|
|
await waitFor(() => {
|
|
|
- expect(toast.error).toHaveBeenCalledWith('设置额度失败');
|
|
|
+ expect(toast.error).toHaveBeenCalledWith('设置失败: 设置额度失败');
|
|
|
});
|
|
|
});
|
|
|
|
|
|
@@ -668,8 +682,8 @@ describe('信用额度管理对话框集成测试', () => {
|
|
|
id: 1,
|
|
|
userId: 123,
|
|
|
totalLimit: 10000,
|
|
|
- usedAmount: 9500, // 使用率95%,应该显示警告
|
|
|
- availableAmount: 500,
|
|
|
+ usedAmount: 12000, // 使用量超出额度,应该显示欠款警告
|
|
|
+ availableAmount: -2000, // 负值表示欠款
|
|
|
isEnabled: 1,
|
|
|
createdAt: '2024-01-01T00:00:00Z',
|
|
|
updatedAt: '2024-01-01T00:00:00Z'
|
|
|
@@ -694,7 +708,7 @@ describe('信用额度管理对话框集成测试', () => {
|
|
|
});
|
|
|
|
|
|
// 应该显示欠款警告
|
|
|
- expect(screen.getByText('高使用率警告')).toBeInTheDocument();
|
|
|
- expect(screen.getByText('当前信用额度使用率已达到95%,请及时关注用户还款情况。')).toBeInTheDocument();
|
|
|
+ expect(screen.getByText('用户存在欠款')).toBeInTheDocument();
|
|
|
+ expect(screen.getByText(/用户已超出信用额度 ¥2000\.00/)).toBeInTheDocument();
|
|
|
});
|
|
|
});
|