core: test group members connect in group when they were previously connected as contacts (#3595)
This commit is contained in:
parent
5798efcf71
commit
37d033c7a5
@ -70,6 +70,8 @@ chatGroupTests = do
|
||||
it "re-join existing group after leaving" testPlanGroupLinkLeaveRejoin
|
||||
describe "group links without contact" $ do
|
||||
it "join via group link without creating contact" testGroupLinkNoContact
|
||||
it "invitees were previously connected as contacts" testGroupLinkNoContactInviteesWereConnected
|
||||
it "all members were previously connected as contacts" testGroupLinkNoContactAllMembersWereConnected
|
||||
it "group link member role" testGroupLinkNoContactMemberRole
|
||||
it "host incognito" testGroupLinkNoContactHostIncognito
|
||||
it "invitee incognito" testGroupLinkNoContactInviteeIncognito
|
||||
@ -2714,6 +2716,169 @@ testGroupLinkNoContact =
|
||||
alice <# "#team bob> hi cath"
|
||||
cath <# "#team bob> hi cath"
|
||||
|
||||
testGroupLinkNoContactInviteesWereConnected :: HasCallStack => FilePath -> IO ()
|
||||
testGroupLinkNoContactInviteesWereConnected =
|
||||
testChat3 aliceProfile bobProfile cathProfile $
|
||||
\alice bob cath -> do
|
||||
connectUsers bob cath
|
||||
bob <##> cath
|
||||
|
||||
alice ##> "/g team"
|
||||
alice <## "group #team is created"
|
||||
alice <## "to add members use /a team <name> or /create link #team"
|
||||
|
||||
alice ##> "/set history #team off"
|
||||
alice <## "updated group preferences:"
|
||||
alice <## "Recent history: off"
|
||||
|
||||
alice ##> "/create link #team"
|
||||
gLink <- getGroupLink alice "team" GRMember True
|
||||
bob ##> ("/c " <> gLink)
|
||||
bob <## "connection request sent!"
|
||||
alice <## "bob (Bob): accepting request to join group #team..."
|
||||
concurrentlyN_
|
||||
[ alice <## "#team: bob joined the group",
|
||||
do
|
||||
bob <## "#team: joining the group..."
|
||||
bob <## "#team: you joined the group"
|
||||
]
|
||||
|
||||
threadDelay 100000
|
||||
alice #$> ("/_get chat #1 count=100", chat, [(0, "invited via your group link"), (0, "connected")])
|
||||
|
||||
alice @@@ [("#team", "connected")]
|
||||
bob @@@ [("#team", "connected"), ("@cath", "hey")]
|
||||
alice ##> "/contacts"
|
||||
bob ##> "/contacts"
|
||||
bob <## "cath (Catherine)"
|
||||
|
||||
alice #> "#team hello"
|
||||
bob <# "#team alice> hello"
|
||||
bob #> "#team hi there"
|
||||
alice <# "#team bob> hi there"
|
||||
|
||||
cath ##> ("/c " <> gLink)
|
||||
cath <## "connection request sent!"
|
||||
concurrentlyN_
|
||||
[ do
|
||||
alice <## "cath (Catherine): accepting request to join group #team..."
|
||||
alice <## "#team: cath joined the group",
|
||||
cath
|
||||
<### [ "#team: joining the group...",
|
||||
"#team: you joined the group",
|
||||
"#team: member bob_1 (Bob) is connected",
|
||||
"contact and member are merged: bob, #team bob_1",
|
||||
"use @bob <message> to send messages"
|
||||
],
|
||||
bob
|
||||
<### [ "#team: alice added cath_1 (Catherine) to the group (connecting...)",
|
||||
"#team: new member cath_1 is connected",
|
||||
"contact and member are merged: cath, #team cath_1",
|
||||
"use @cath <message> to send messages"
|
||||
]
|
||||
]
|
||||
|
||||
-- message delivery works
|
||||
bob <##> cath
|
||||
|
||||
alice #> "#team 1"
|
||||
[bob, cath] *<# "#team alice> 1"
|
||||
bob #> "#team 2"
|
||||
[alice, cath] *<# "#team bob> 2"
|
||||
cath #> "#team 3"
|
||||
[alice, bob] *<# "#team cath> 3"
|
||||
|
||||
testGroupLinkNoContactAllMembersWereConnected :: HasCallStack => FilePath -> IO ()
|
||||
testGroupLinkNoContactAllMembersWereConnected =
|
||||
testChat3 aliceProfile bobProfile cathProfile $
|
||||
\alice bob cath -> do
|
||||
connectUsers alice bob
|
||||
alice <##> bob
|
||||
connectUsers alice cath
|
||||
alice <##> cath
|
||||
connectUsers bob cath
|
||||
bob <##> cath
|
||||
|
||||
alice ##> "/g team"
|
||||
alice <## "group #team is created"
|
||||
alice <## "to add members use /a team <name> or /create link #team"
|
||||
|
||||
alice ##> "/set history #team off"
|
||||
alice <## "updated group preferences:"
|
||||
alice <## "Recent history: off"
|
||||
|
||||
alice ##> "/create link #team"
|
||||
gLink <- getGroupLink alice "team" GRMember True
|
||||
bob ##> ("/c " <> gLink)
|
||||
bob <## "connection request sent!"
|
||||
alice <## "bob_1 (Bob): accepting request to join group #team..."
|
||||
concurrentlyN_
|
||||
[ do
|
||||
alice <## "#team: bob_1 joined the group"
|
||||
alice <## "contact and member are merged: bob, #team bob_1"
|
||||
alice <## "use @bob <message> to send messages",
|
||||
do
|
||||
bob <## "#team: joining the group..."
|
||||
bob <## "#team: you joined the group"
|
||||
bob <## "contact and member are merged: alice, #team alice_1"
|
||||
bob <## "use @alice <message> to send messages"
|
||||
]
|
||||
|
||||
threadDelay 100000
|
||||
alice #$> ("/_get chat #1 count=100", chat, [(0, "invited via your group link"), (0, "connected")])
|
||||
|
||||
alice @@@ [("#team", "connected"), ("@bob", "hey"), ("@cath", "hey")]
|
||||
bob @@@ [("#team", "connected"), ("@alice", "hey"), ("@cath", "hey")]
|
||||
alice ##> "/contacts"
|
||||
alice <## "bob (Bob)"
|
||||
alice <## "cath (Catherine)"
|
||||
bob ##> "/contacts"
|
||||
bob <## "alice (Alice)"
|
||||
bob <## "cath (Catherine)"
|
||||
|
||||
alice #> "#team hello"
|
||||
bob <# "#team alice> hello"
|
||||
bob #> "#team hi there"
|
||||
alice <# "#team bob> hi there"
|
||||
|
||||
cath ##> ("/c " <> gLink)
|
||||
cath <## "connection request sent!"
|
||||
concurrentlyN_
|
||||
[ alice
|
||||
<### [ "cath_1 (Catherine): accepting request to join group #team...",
|
||||
"#team: cath_1 joined the group",
|
||||
"contact and member are merged: cath, #team cath_1",
|
||||
"use @cath <message> to send messages"
|
||||
],
|
||||
cath
|
||||
<### [ "#team: joining the group...",
|
||||
"#team: you joined the group",
|
||||
"#team: member bob_1 (Bob) is connected",
|
||||
"contact and member are merged: bob, #team bob_1",
|
||||
"use @bob <message> to send messages",
|
||||
"contact and member are merged: alice, #team alice_1",
|
||||
"use @alice <message> to send messages"
|
||||
],
|
||||
bob
|
||||
<### [ "#team: alice added cath_1 (Catherine) to the group (connecting...)",
|
||||
"#team: new member cath_1 is connected",
|
||||
"contact and member are merged: cath, #team cath_1",
|
||||
"use @cath <message> to send messages"
|
||||
]
|
||||
]
|
||||
|
||||
-- message delivery works
|
||||
alice <##> bob
|
||||
alice <##> cath
|
||||
bob <##> cath
|
||||
|
||||
alice #> "#team 1"
|
||||
[bob, cath] *<# "#team alice> 1"
|
||||
bob #> "#team 2"
|
||||
[alice, cath] *<# "#team bob> 2"
|
||||
cath #> "#team 3"
|
||||
[alice, bob] *<# "#team cath> 3"
|
||||
|
||||
testGroupLinkNoContactMemberRole :: HasCallStack => FilePath -> IO ()
|
||||
testGroupLinkNoContactMemberRole =
|
||||
testChat3 aliceProfile bobProfile cathProfile $
|
||||
|
Loading…
Reference in New Issue
Block a user