From 381df6dc224f13ffd02ced0af28888c38de623cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Dimja=C5=A1evi=C4=87?= Date: Thu, 2 Mar 2023 17:34:08 +0100 Subject: [PATCH 1/2] Test: delete a subconv as a conv member --- services/galley/test/integration/API/MLS.hs | 32 ++++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/services/galley/test/integration/API/MLS.hs b/services/galley/test/integration/API/MLS.hs index 7a048fcb75f..2feb46ca980 100644 --- a/services/galley/test/integration/API/MLS.hs +++ b/services/galley/test/integration/API/MLS.hs @@ -220,8 +220,9 @@ tests s = test s "fail to add another client to a subconversation via internal commit" testAddClientSubConvFailure, test s "remove another client from a subconversation" testRemoveClientSubConv, test s "send an application message in a subconversation" testSendMessageSubConv, - test s "reset a subconversation as a member" (testDeleteSubConv True), - test s "reset a subconversation as a non-member" (testDeleteSubConv False), + test s "reset a subconversation as a creator" (testDeleteSubConv SubConvMember), + test s "reset a subconversation as a conversation member" (testDeleteSubConv ConvMember), + test s "reset a subconversation as a random user" (testDeleteSubConv RandomUser), test s "fail to reset a subconversation with wrong epoch" testDeleteSubConvStale, test s "leave a subconversation as a creator" (testLeaveSubConv True), test s "leave a subconversation as a non-creator" (testLeaveSubConv False), @@ -2745,18 +2746,23 @@ testRemoteMemberDeleteSubConv isAMember = do expectFailure errExpected (DeleteSubConversationResponseError err) = liftIO $ err @?= errExpected -testDeleteSubConv :: Bool -> TestM () -testDeleteSubConv isAMember = do - alice <- randomQualifiedUser +-- | A choice on who is deleting a subconversation +data SubConvDeleterType + = ConvMember + | SubConvMember + | RandomUser + deriving (Eq) + +testDeleteSubConv :: SubConvDeleterType -> TestM () +testDeleteSubConv deleterType = do + [alice, bob] <- createAndConnectUsers [Nothing, Nothing] randUser <- randomId - let (deleter, expectedCode) = - if isAMember - then (qUnqualified alice, 200) - else (randUser, 403) let sconv = SubConvId "conference" qcnv <- runMLSTest $ do - alice1 <- createMLSClient alice + [alice1, bob1] <- traverse createMLSClient [alice, bob] + void $ uploadNewKeyPackage bob1 (_, qcnv) <- setupMLSGroup alice1 + void $ createAddCommit alice1 [bob] >>= sendAndConsumeCommitBundle void $ createSubConv qcnv alice1 sconv pure qcnv @@ -2765,6 +2771,10 @@ testDeleteSubConv isAMember = do =<< getSubConv (qUnqualified alice) qcnv sconv (qUnqualified bob, 200) + SubConvMember -> (qUnqualified alice, 200) + RandomUser -> (randUser, 403) deleteSubConv deleter qcnv sconv dsc !!! const expectedCode === statusCode newSub <- @@ -2773,7 +2783,7 @@ testDeleteSubConv isAMember = do Date: Thu, 2 Mar 2023 17:43:03 +0100 Subject: [PATCH 2/2] Add a changelog --- changelog.d/1-api-changes/delete-subconversation | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.d/1-api-changes/delete-subconversation b/changelog.d/1-api-changes/delete-subconversation index 79f52ccb5d4..2f190691417 100644 --- a/changelog.d/1-api-changes/delete-subconversation +++ b/changelog.d/1-api-changes/delete-subconversation @@ -1 +1 @@ -Introduce an endpoint for deleting a subconversation +Introduce an endpoint for deleting a subconversation (#2956, #3119)