feat(social): broadcast friend_request_sent on local request creation

This commit is contained in:
Jannis Braun
2026-04-25 22:15:57 +02:00
parent bf13e2a223
commit 1ad1fd1b0c
2 changed files with 23 additions and 0 deletions
+18
View File
@@ -219,4 +219,22 @@ describe('POST /api/social/requests — case-insensitive username lookup', () =>
expect(res.statusCode).toBe(404);
expect(JSON.parse(res.body).error).toBe('User not found');
});
it('broadcasts friend_request_sent to the sender on local request creation', async () => {
seedUser({ id: 'u1', username: 'alice' });
const { connectionManager } = await import('../ws/handler.js');
const sendToUser = connectionManager.sendToUser as unknown as ReturnType<typeof vi.fn>;
sendToUser.mockClear();
const res = await app.inject({
method: 'POST',
url: '/api/social/requests',
payload: { username: 'alice' },
});
expect(res.statusCode).toBe(201);
const sent = sendToUser.mock.calls.find(c => c[1]?.type === 'friend_request_sent');
expect(sent).toBeDefined();
expect(sent![0]).toBe(CALLER_ID);
});
});
+5
View File
@@ -103,6 +103,11 @@ async function handleLocalFriendRequest(
request: friendRequestPayload,
});
connectionManager.sendToUser(request.userId, {
type: 'friend_request_sent',
request: friendRequestPayload,
});
// Federation relay: notify the target user's home instance
const fromIdentity = {
homeUserId: sender.homeUserId || request.userId,