From 7fc907a8747924ab697515b411d93faf04e50afd Mon Sep 17 00:00:00 2001 From: Jakub Date: Tue, 7 Mar 2023 18:56:06 +0100 Subject: [PATCH] fix(GODT-2442): must publish loggedOut event. --- internal/bridge/user.go | 5 +++++ internal/bridge/user_event_test.go | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/internal/bridge/user.go b/internal/bridge/user.go index d0e1b535..59baaa4e 100644 --- a/internal/bridge/user.go +++ b/internal/bridge/user.go @@ -343,6 +343,11 @@ func (bridge *Bridge) SendBadEventUserFeedback(_ context.Context, userID string, } bridge.logoutUser(ctx, user, true, false) + + bridge.publish(events.UserLoggedOut{ + UserID: userID, + }) + return nil }, bridge.usersLock) } diff --git a/internal/bridge/user_event_test.go b/internal/bridge/user_event_test.go index b806b626..490bd597 100644 --- a/internal/bridge/user_event_test.go +++ b/internal/bridge/user_event_test.go @@ -100,9 +100,14 @@ func TestBridge_User_BadMessage_BadEvent(t *testing.T) { })) t.Run("LogoutAndLogin", test_badMessage_badEvent(func(t *testing.T, ctx context.Context, bridge *bridge.Bridge, badUserID string) { + logoutCh, closeCh := chToType[events.Event, events.UserLoggedOut](bridge.GetEvents(events.UserLoggedOut{})) + // User feedback is logout require.NoError(t, bridge.SendBadEventUserFeedback(ctx, badUserID, false)) + require.Equal(t, badUserID, (<-logoutCh).UserID) + closeCh() + // The user will eventually be logged out due to the bad request errors. require.Eventually(t, func() bool { return len(bridge.GetUserIDs()) == 1 && len(getConnectedUserIDs(t, bridge)) == 0