聊天界面所有前端

Change-Id: I0278cae1cd7152f4f797c00ac68cbdb36a2dd768
diff --git a/src/api/__tests__/chat.test.js b/src/api/__tests__/chat.test.js
new file mode 100644
index 0000000..8571fbc
--- /dev/null
+++ b/src/api/__tests__/chat.test.js
@@ -0,0 +1,84 @@
+// src/api/__tests__/chat.test.js
+const axios = require('axios');
+const MockAdapter = require('axios-mock-adapter');
+const {
+    createChat,
+    deleteChat,
+    getChatsByUser,
+    getChatsBetweenUsers
+} = require('../chat');
+
+jest.mock('axios');
+
+describe('Chat API Tests', () => {
+    beforeEach(() => {
+        jest.clearAllMocks();
+    });
+
+    test('createChat should post chat data', async () => {
+        const mockData = {
+            senderId: 1,
+            receiverId: 2,
+            content: 'Hello!',
+            talkTime: '2025-06-09T10:00:00'
+        };
+        const mockResponse = { data: { ...mockData, informationid: 101 } };
+        axios.post.mockResolvedValue(mockResponse);
+
+        const response = await createChat(mockData);
+
+        expect(axios.post).toHaveBeenCalledWith(
+            'http://localhost:8080/chat/create',
+            mockData
+        );
+        expect(response.data).toEqual(mockResponse.data);
+    });
+
+    test('deleteChat should send delete request', async () => {
+        axios.delete.mockResolvedValue({ data: '删除成功' });
+
+        const response = await deleteChat(101);
+
+        expect(axios.delete).toHaveBeenCalledWith('http://localhost:8080/chat/delete/101');
+        expect(response.data).toBe('删除成功');
+    });
+
+    test('getChatsByUser should fetch all chats for a user', async () => {
+        const userId = 1;
+        const mockData = { data: [{ senderId: 1, receiverId: 2, content: 'Hi' }] };
+        axios.get.mockResolvedValue(mockData);
+
+        const result = await getChatsByUser(userId);
+
+        expect(axios.get).toHaveBeenCalledWith(`http://localhost:8080/chat/user/${userId}`);
+        expect(result).toEqual(mockData.data);
+    });
+
+    test('getChatsBetweenUsers should fetch chats between two users', async () => {
+        const user1 = 1;
+        const user2 = 2;
+        const mockData = {
+            data: [{ senderId: 1, receiverId: 2, content: 'Hi there!' }]
+        };
+        axios.get.mockResolvedValue(mockData);
+
+        const result = await getChatsBetweenUsers(user1, user2);
+
+        expect(axios.get).toHaveBeenCalledWith('http://localhost:8080/chat/between', {
+            params: { user1, user2 }
+        });
+        expect(result).toEqual(mockData.data);
+    });
+
+    test('getChatsByUser should return [] on error', async () => {
+        axios.get.mockRejectedValue(new Error('Failed'));
+        const result = await getChatsByUser(1);
+        expect(result).toEqual([]);
+    });
+
+    test('getChatsBetweenUsers should return [] on error', async () => {
+        axios.get.mockRejectedValue(new Error('Failed'));
+        const result = await getChatsBetweenUsers(1, 2);
+        expect(result).toEqual([]);
+    });
+});