fix(GODT-2909): Remove Timeout on event publish

While good intentioned, this change causes issues when the computer goes
to sleep and a user resumes after the timeout interval.
This commit is contained in:
Leander Beernaert
2023-09-11 09:53:50 +02:00
parent 6269b1ab88
commit 7689139cb3
3 changed files with 7 additions and 76 deletions

View File

@ -182,56 +182,3 @@ func TestServiceHandleEvent_CheckEventFailureCausesErrorParallel(t *testing.T) {
require.True(t, errors.As(err, &publisherErr))
require.Equal(t, publisherErr.subscriber, subscription)
}
func TestServiceHandleEvent_SubscriberTimeout(t *testing.T) {
mockCtrl := gomock.NewController(t)
eventPublisher := mocks.NewMockEventPublisher(mockCtrl)
eventIDStore := NewInMemoryEventIDStore()
addressHandler := NewMockAddressEventHandler(mockCtrl)
addressHandler.EXPECT().HandleAddressEvents(gomock.Any(), gomock.Any()).MaxTimes(1).Return(nil)
addressHandler2 := NewMockAddressEventHandler(mockCtrl)
addressHandler2.EXPECT().HandleAddressEvents(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx context.Context, _ []proton.AddressEvent) error {
timer := time.NewTimer(time.Second)
select {
case <-ctx.Done():
return ctx.Err()
case <-timer.C:
return nil
}
}).MaxTimes(1)
service := NewService(
"foo",
&NullEventSource{},
eventIDStore,
eventPublisher,
100*time.Millisecond,
time.Millisecond,
500*time.Millisecond,
async.NoopPanicHandler{},
)
subscription := NewCallbackSubscriber("test", EventHandler{
AddressHandler: addressHandler2,
})
service.addSubscription(subscription)
service.addSubscription(NewCallbackSubscriber("test2", EventHandler{
AddressHandler: addressHandler,
}))
// Simulate 1st refresh.
err := service.handleEvent(context.Background(), "", proton.Event{Addresses: []proton.AddressEvent{{}}})
require.Error(t, err)
if publisherErr := new(eventPublishError); errors.As(err, &publisherErr) {
require.Equal(t, publisherErr.subscriber, subscription)
require.True(t, errors.Is(publisherErr.error, ErrPublishTimeoutExceeded))
} else {
require.True(t, errors.Is(err, ErrPublishTimeoutExceeded))
}
}