Merge remote-tracking branch 'origin/main'
# Conflicts: # src/browser/client.ts # src/services/reddit-session-importer.ts # src/web/routes/conversations.ts
This commit is contained in:
commit
48492d5238
30 files changed
+1041
-181
No files matched your search
@@ -300,4 +300,48 @@ describe('conversations route', () => {
|
||||
});
|
||||
expect(context.repos.messages.getLatestByRecipient).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('waits for the conversation delta sync after sending a reply', async () => {
|
||||
const conversation = {
|
||||
username: 'alice', roomName: 'alice', roomId: 'room-alice',
|
||||
url: 'https://chat.reddit.com/room/room-alice',
|
||||
lastMessageTime: 10, lastMessageSnippet: 'Hello', isFromUs: false, unread: false,
|
||||
messages: [{ sender: 'alice', text: 'Hello', timestamp: 10, isSelf: false }],
|
||||
};
|
||||
let completeSync: (() => void) | undefined;
|
||||
const refreshTopChats = vi.fn(() => new Promise<void>((resolve) => {
|
||||
completeSync = resolve;
|
||||
}));
|
||||
const context = {
|
||||
logger: { error: vi.fn() },
|
||||
activity: { push: vi.fn() },
|
||||
broadcaster: { push: vi.fn() },
|
||||
services: { chat: {
|
||||
getCachedConversations: vi.fn().mockResolvedValue([conversation]),
|
||||
sendChatMessage: vi.fn().mockResolvedValue(true),
|
||||
refreshTopChats,
|
||||
} },
|
||||
} as unknown as WebContext;
|
||||
const app = express()
|
||||
.use(express.json())
|
||||
.use('/api', createConversationsRouter(context));
|
||||
|
||||
let responseSettled = false;
|
||||
const responsePromise = request(app, '/api/conversations/room-alice/send-reply', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ message: 'AI-assisted reply' }),
|
||||
}).then((response) => {
|
||||
responseSettled = true;
|
||||
return response;
|
||||
});
|
||||
|
||||
await vi.waitFor(() => expect(refreshTopChats).toHaveBeenCalledWith(5));
|
||||
expect(responseSettled).toBe(false);
|
||||
completeSync?.();
|
||||
|
||||
const response = await responsePromise;
|
||||
expect(response.status).toBe(200);
|
||||
expect(await response.json()).toEqual({ success: true });
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user