The bot writes the end of a send outage to the log after the send
returns, so the fake server can hold the message before the line exists.
The test now waits for the line instead of reading the log once, which
made it fail now and then, also inside nix build.
require.Contains(t, logs.String(), "<4>receive failed retry=1ms: 502")
require.Contains(t, logs.String(), "<6>receive back after=")
require.Contains(t, logs.String(), "<4>send failed retry=1s: 429")
require.Contains(t, logs.String(), "<4>receive failed retry=1ms: 502")
require.Contains(t, logs.String(), "<6>receive back after=")
require.Contains(t, logs.String(), "<4>send failed retry=1s: 429")
- require.Contains(t, logs.String(), "<6>send back after=")
+
+ // The bot logs the end of the outage after the send returns, so the line
+ // can come after the fake server has the message.
+ require.Eventually(t, func() bool {
+ return strings.Contains(logs.String(), "<6>send back after=")
+ }, 10*time.Second, time.Millisecond)
+
require.NotContains(t, logs.String(), telegramTestToken)
}
require.NotContains(t, logs.String(), telegramTestToken)
}