Skip to content

Commit cd6ea47

Browse files
author
Daksh
committed
add delete for me fields and tests
1 parent 6daf60d commit cd6ea47

File tree

2 files changed

+84
-1
lines changed

2 files changed

+84
-1
lines changed

__tests__/messages.test.ts

Lines changed: 82 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,88 @@ describe('messages API', () => {
202202
expect(response.messages.length).toBe(0);
203203
});
204204

205-
it('delete message', async () => {
205+
it('delete message for me', async () => {
206+
// First, create a new message for this test
207+
const sendResponse = await channel.sendMessage({
208+
message: {
209+
text: 'Message to delete for me only',
210+
user_id: user.id,
211+
},
212+
});
213+
const testMessageId = sendResponse.message.id;
214+
215+
// Delete the message for user only (delete_for_me: true)
216+
const deleteResponse = await client.chat.deleteMessage({
217+
id: testMessageId,
218+
delete_for_me: true,
219+
});
220+
221+
expect(deleteResponse.message?.id).toBe(testMessageId);
222+
223+
// Verify the message shows deleted_for_me: true for the deleting user
224+
const getMessageResponse = await client.chat.getMessage({
225+
id: testMessageId,
226+
});
227+
expect(getMessageResponse.message?.deleted_for_me).toBe(true);
228+
expect(getMessageResponse.message?.text).toBe(
229+
'Message to delete for me only',
230+
);
231+
232+
// The message should still exist and be accessible to other users
233+
// Note: In the server-side SDK, we can't easily test different users viewing the same message
234+
// as that would require different authentication contexts
235+
});
236+
237+
it('delete message for me - error when combined with hard delete', async () => {
238+
// Create another message for this test
239+
const sendResponse = await channel.sendMessage({
240+
message: {
241+
text: 'Message to test incompatible flags',
242+
user_id: user.id,
243+
},
244+
});
245+
const testMessageId = sendResponse.message.id;
246+
247+
// Attempt to delete with both delete_for_me and hard flags should fail
248+
await expect(() =>
249+
client.chat.deleteMessage({
250+
id: testMessageId,
251+
delete_for_me: true,
252+
hard: true,
253+
}),
254+
).rejects.toThrowError();
255+
});
256+
257+
it('delete message for me - normal message fetch includes deleted_for_me field', async () => {
258+
// Create a message to test with
259+
const sendResponse = await channel.sendMessage({
260+
message: {
261+
text: 'Message to check deleted_for_me field',
262+
user_id: user.id,
263+
},
264+
});
265+
const testMessageId = sendResponse.message.id;
266+
267+
// Initially, deleted_for_me should be false or undefined
268+
const initialGetResponse = await client.chat.getMessage({
269+
id: testMessageId,
270+
});
271+
expect(initialGetResponse.message?.deleted_for_me).toBeFalsy();
272+
273+
// Delete for me
274+
await client.chat.deleteMessage({
275+
id: testMessageId,
276+
delete_for_me: true,
277+
});
278+
279+
// Now deleted_for_me should be true
280+
const finalGetResponse = await client.chat.getMessage({
281+
id: testMessageId,
282+
});
283+
expect(finalGetResponse.message?.deleted_for_me).toBe(true);
284+
});
285+
286+
it('delete message (hard delete)', async () => {
206287
const response = await client.chat.deleteMessage({
207288
id: messageId!,
208289
hard: true,

src/gen/models/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7196,6 +7196,8 @@ export interface MessageDeletedEvent {
71967196

71977197
thread_participants?: User[];
71987198

7199+
deleted_for_me?: boolean;
7200+
71997201
message?: Message;
72007202

72017203
user?: User;

0 commit comments

Comments
 (0)