- server := newTelegramFake(t)
- server.stall = func(call TelegramFakeCall) bool {
- return call.method == tc.method
- }
-
- api := newTelegramAPI(server.URL, telegramTestToken)
- api.sendTimeout = 50 * time.Millisecond
- start := time.Now()
- err := tc.send(t.Context(), api)
- require.EqualError(t, err, "no answer in 50ms")
- require.Less(t, time.Since(start), 5*time.Second)
- require.NotContains(t, err.Error(), telegramTestToken)
- require.NotContains(t, err.Error(), server.URL)
+ synctest.Test(t, func(t *testing.T) {
+ server := newTelegramLocalFake(t)
+ server.stall = func(call TelegramFakeCall) bool {
+ return call.method == tc.method
+ }
+
+ api := newTelegramAPI(server.URL, telegramTestToken)
+ api.http.Transport = server
+ start := time.Now()
+ err := tc.send(t.Context(), api)
+ require.EqualError(t, err, "no answer in 30s")
+ require.Equal(t, telegramSendTimeout, time.Since(start))
+ require.NotContains(t, err.Error(), telegramTestToken)
+ require.NotContains(t, err.Error(), server.URL)
+
+ retry, _ := telegramRetryable(err)
+ require.True(t, retry)