Skip to content

Commit f0728eb

Browse files
committed
feat: enrich the deleted-for-me message with type="deleted" and deleted_for_me=true
1 parent b2df356 commit f0728eb

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/client.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3172,10 +3172,17 @@ export class StreamChat {
31723172
if (deleteForMe) {
31733173
params = { ...params, delete_for_me: true };
31743174
}
3175-
return await this.delete<APIResponse & { message: MessageResponse }>(
3175+
const result = await this.delete<APIResponse & { message: MessageResponse }>(
31763176
this.baseURL + `/messages/${encodeURIComponent(messageID)}`,
31773177
params,
31783178
);
3179+
3180+
// necessary to populate the below values as the server does not return the message in the response as deleted
3181+
if (deleteForMe) {
3182+
result.message.deleted_for_me = true;
3183+
result.message.type = 'deleted';
3184+
}
3185+
return result;
31793186
}
31803187

31813188
/**

test/unit/client.test.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1141,10 +1141,21 @@ describe('message deletion', () => {
11411141
});
11421142
const result = await client._deleteMessage(messageId);
11431143

1144-
expect(result).toEqual({
1144+
expect(result).toStrictEqual({
11451145
message: { id: messageId },
11461146
});
11471147
});
1148+
1149+
it('enriches the deleted-for-me message with type="deleted" and deleted_for_me=true', async () => {
1150+
clientDeleteSpy.mockResolvedValue({
1151+
message: { id: messageId },
1152+
});
1153+
const result = await client._deleteMessage(messageId, { deleteForMe: true });
1154+
1155+
expect(result).toStrictEqual({
1156+
message: { deleted_for_me: true, id: messageId, type: 'deleted' },
1157+
});
1158+
});
11481159
});
11491160
});
11501161

0 commit comments

Comments
 (0)