From cd6ea4731e2abdae740775f1ffac0d620b2d5fd7 Mon Sep 17 00:00:00 2001 From: Daksh Date: Mon, 25 Aug 2025 16:06:34 +0200 Subject: [PATCH 1/3] add delete for me fields and tests --- __tests__/messages.test.ts | 83 +++++++++++++++++++++++++++++++++++++- src/gen/models/index.ts | 2 + 2 files changed, 84 insertions(+), 1 deletion(-) diff --git a/__tests__/messages.test.ts b/__tests__/messages.test.ts index 4238bc2..f7e829f 100644 --- a/__tests__/messages.test.ts +++ b/__tests__/messages.test.ts @@ -202,7 +202,88 @@ describe('messages API', () => { expect(response.messages.length).toBe(0); }); - it('delete message', async () => { + it('delete message for me', async () => { + // First, create a new message for this test + const sendResponse = await channel.sendMessage({ + message: { + text: 'Message to delete for me only', + user_id: user.id, + }, + }); + const testMessageId = sendResponse.message.id; + + // Delete the message for user only (delete_for_me: true) + const deleteResponse = await client.chat.deleteMessage({ + id: testMessageId, + delete_for_me: true, + }); + + expect(deleteResponse.message?.id).toBe(testMessageId); + + // Verify the message shows deleted_for_me: true for the deleting user + const getMessageResponse = await client.chat.getMessage({ + id: testMessageId, + }); + expect(getMessageResponse.message?.deleted_for_me).toBe(true); + expect(getMessageResponse.message?.text).toBe( + 'Message to delete for me only', + ); + + // The message should still exist and be accessible to other users + // Note: In the server-side SDK, we can't easily test different users viewing the same message + // as that would require different authentication contexts + }); + + it('delete message for me - error when combined with hard delete', async () => { + // Create another message for this test + const sendResponse = await channel.sendMessage({ + message: { + text: 'Message to test incompatible flags', + user_id: user.id, + }, + }); + const testMessageId = sendResponse.message.id; + + // Attempt to delete with both delete_for_me and hard flags should fail + await expect(() => + client.chat.deleteMessage({ + id: testMessageId, + delete_for_me: true, + hard: true, + }), + ).rejects.toThrowError(); + }); + + it('delete message for me - normal message fetch includes deleted_for_me field', async () => { + // Create a message to test with + const sendResponse = await channel.sendMessage({ + message: { + text: 'Message to check deleted_for_me field', + user_id: user.id, + }, + }); + const testMessageId = sendResponse.message.id; + + // Initially, deleted_for_me should be false or undefined + const initialGetResponse = await client.chat.getMessage({ + id: testMessageId, + }); + expect(initialGetResponse.message?.deleted_for_me).toBeFalsy(); + + // Delete for me + await client.chat.deleteMessage({ + id: testMessageId, + delete_for_me: true, + }); + + // Now deleted_for_me should be true + const finalGetResponse = await client.chat.getMessage({ + id: testMessageId, + }); + expect(finalGetResponse.message?.deleted_for_me).toBe(true); + }); + + it('delete message (hard delete)', async () => { const response = await client.chat.deleteMessage({ id: messageId!, hard: true, diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index 4f0243c..480f726 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -7196,6 +7196,8 @@ export interface MessageDeletedEvent { thread_participants?: User[]; + deleted_for_me?: boolean; + message?: Message; user?: User; From bc9e19086bef3cc97fa57298c161d9cde9c68d6a Mon Sep 17 00:00:00 2001 From: Daksh Date: Mon, 25 Aug 2025 16:06:34 +0200 Subject: [PATCH 2/3] remove tests --- __tests__/messages.test.ts | 81 -------------------------------------- 1 file changed, 81 deletions(-) diff --git a/__tests__/messages.test.ts b/__tests__/messages.test.ts index f7e829f..d92f3e1 100644 --- a/__tests__/messages.test.ts +++ b/__tests__/messages.test.ts @@ -202,87 +202,6 @@ describe('messages API', () => { expect(response.messages.length).toBe(0); }); - it('delete message for me', async () => { - // First, create a new message for this test - const sendResponse = await channel.sendMessage({ - message: { - text: 'Message to delete for me only', - user_id: user.id, - }, - }); - const testMessageId = sendResponse.message.id; - - // Delete the message for user only (delete_for_me: true) - const deleteResponse = await client.chat.deleteMessage({ - id: testMessageId, - delete_for_me: true, - }); - - expect(deleteResponse.message?.id).toBe(testMessageId); - - // Verify the message shows deleted_for_me: true for the deleting user - const getMessageResponse = await client.chat.getMessage({ - id: testMessageId, - }); - expect(getMessageResponse.message?.deleted_for_me).toBe(true); - expect(getMessageResponse.message?.text).toBe( - 'Message to delete for me only', - ); - - // The message should still exist and be accessible to other users - // Note: In the server-side SDK, we can't easily test different users viewing the same message - // as that would require different authentication contexts - }); - - it('delete message for me - error when combined with hard delete', async () => { - // Create another message for this test - const sendResponse = await channel.sendMessage({ - message: { - text: 'Message to test incompatible flags', - user_id: user.id, - }, - }); - const testMessageId = sendResponse.message.id; - - // Attempt to delete with both delete_for_me and hard flags should fail - await expect(() => - client.chat.deleteMessage({ - id: testMessageId, - delete_for_me: true, - hard: true, - }), - ).rejects.toThrowError(); - }); - - it('delete message for me - normal message fetch includes deleted_for_me field', async () => { - // Create a message to test with - const sendResponse = await channel.sendMessage({ - message: { - text: 'Message to check deleted_for_me field', - user_id: user.id, - }, - }); - const testMessageId = sendResponse.message.id; - - // Initially, deleted_for_me should be false or undefined - const initialGetResponse = await client.chat.getMessage({ - id: testMessageId, - }); - expect(initialGetResponse.message?.deleted_for_me).toBeFalsy(); - - // Delete for me - await client.chat.deleteMessage({ - id: testMessageId, - delete_for_me: true, - }); - - // Now deleted_for_me should be true - const finalGetResponse = await client.chat.getMessage({ - id: testMessageId, - }); - expect(finalGetResponse.message?.deleted_for_me).toBe(true); - }); - it('delete message (hard delete)', async () => { const response = await client.chat.deleteMessage({ id: messageId!, From 1f5040e7494bfb295a8d2ccc1c2044c2f5ee5054 Mon Sep 17 00:00:00 2001 From: Daksh Date: Mon, 25 Aug 2025 16:18:54 +0200 Subject: [PATCH 3/3] fix diff --- __tests__/messages.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/__tests__/messages.test.ts b/__tests__/messages.test.ts index d92f3e1..4238bc2 100644 --- a/__tests__/messages.test.ts +++ b/__tests__/messages.test.ts @@ -202,7 +202,7 @@ describe('messages API', () => { expect(response.messages.length).toBe(0); }); - it('delete message (hard delete)', async () => { + it('delete message', async () => { const response = await client.chat.deleteMessage({ id: messageId!, hard: true,