fix: harden single-machine load handling
This commit is contained in:
@@ -158,6 +158,7 @@ type testRelationsStore struct {
|
||||
deleteTenant types.TenantID
|
||||
deleteUser types.Uid
|
||||
deletePeer types.Uid
|
||||
resolveNil bool
|
||||
}
|
||||
|
||||
type testFavoritesStore struct {
|
||||
@@ -962,6 +963,9 @@ func (s *testRelationsStore) CountPendingFriendRequests(tenantID types.TenantID,
|
||||
}
|
||||
|
||||
func (s *testRelationsStore) ResolveFriendRequest(_ types.TenantID, requestID string, actor types.Uid, status string, handledAt time.Time) (*types.FriendRequest, error) {
|
||||
if s.resolveNil {
|
||||
return nil, nil
|
||||
}
|
||||
return &types.FriendRequest{
|
||||
TenantID: 7,
|
||||
RequestID: requestID,
|
||||
@@ -975,6 +979,28 @@ func (s *testRelationsStore) ResolveFriendRequest(_ types.TenantID, requestID st
|
||||
}, nil
|
||||
}
|
||||
|
||||
func TestServeIMFriendRequestActionRejectsEmptyStoreResult(t *testing.T) {
|
||||
ctrl := gomock.NewController(t)
|
||||
defer ctrl.Finish()
|
||||
expectIMBearer(t, ctrl, "token-1", 7, 42)
|
||||
|
||||
oldRelations := store.Relations
|
||||
store.Relations = &testRelationsStore{resolveNil: true}
|
||||
t.Cleanup(func() { store.Relations = oldRelations })
|
||||
|
||||
req := httptest.NewRequest(http.MethodPost, "/v1/im/friend-requests/frq-1/accept", nil)
|
||||
req.Header.Set("Authorization", "Bearer token-1")
|
||||
rec := httptest.NewRecorder()
|
||||
serveIMFriendRequestAction(rec, req)
|
||||
|
||||
if rec.Code != http.StatusInternalServerError {
|
||||
t.Fatalf("status: got %d, want %d; body=%s", rec.Code, http.StatusInternalServerError, rec.Body.String())
|
||||
}
|
||||
if response := decodeIMHTTPResponse(t, rec); response.Reason != imReasonInternal {
|
||||
t.Fatalf("reason: got %q, want %q", response.Reason, imReasonInternal)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *testRelationsStore) ListFriends(_ types.TenantID, _ types.Uid, _, _, _ string, _ int) ([]types.FriendListItem, string, error) {
|
||||
return s.friends, "", nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user