Fix nats_test.go flaky tests (#37976)

Context:
https://fleetdm.slack.com/archives/C019WG4GH0A/p1767759920870649

Looks like some of the tests in `nats_test.go` are failing due to
timeouts. The timeout used for the context in these tests is 5 seconds.
Instead of increasing it, I decided to reduce the number of logs that
are written in tests as well as some sleep statements that I don't think
are needed.
Note that in `nats.go` we use `context.WithTimeout` so that's why the
context deadline exceeded error is raised.

<img width="747" height="373" alt="Screenshot 2026-01-07 at 9 38 04 AM"
src="https://github.com/user-attachments/assets/1a817e8b-6a4a-4d43-9891-07f2791b82ea"
/>

## Testing

Did 5 test runs and measured the test completion time

### Before

<img width="1211" height="230" alt="Screenshot 2026-01-07 at 9 39 59 AM"
src="https://github.com/user-attachments/assets/cf22397b-1962-439c-831f-ef9cde6bf590"
/>

Completion time (avg): 1.23s

### After

<img width="922" height="227" alt="Screenshot 2026-01-07 at 9 38 53 AM"
src="https://github.com/user-attachments/assets/12e1bddd-a257-4313-ab89-e1339374796c"
/>

Completion time (avg): 0.31s
This commit is contained in:
Nico
2026-01-07 14:08:42 -03:00
committed by GitHub
parent dc61994917
commit a9e6a0f372
+4 -10
View File
@@ -20,7 +20,7 @@ import (
)
const (
natsTestLogCount = 1000
natsTestLogCount = 2
natsTestDirectSubject = "test.logs.direct"
natsTestStreamSubject = "test.logs.stream"
natsTestStreamName = "test-logs-stream"
@@ -68,15 +68,15 @@ func makeNatsServer(t *testing.T) *server.Server {
return ns
}
// makeNatsLogs creates a number of test logs.
// makeNatsLogs creates test logs.
func makeNatsLogs(t *testing.T) []json.RawMessage {
t.Helper()
var logs []json.RawMessage
for n := range natsTestLogCount {
for i := range natsTestLogCount {
logs = append(logs,
json.RawMessage(fmt.Sprintf(`{"foo":"bar %d"}`, n)),
json.RawMessage(fmt.Sprintf(`{"foo":"bar %d"}`, i)),
)
}
@@ -235,9 +235,6 @@ func TestNatsLogWriter(t *testing.T) {
require.Error(t, err)
// Wait a moment to ensure no messages were published.
time.Sleep(100 * time.Millisecond)
// Ensure no messages were received.
lock.Lock()
require.Equal(t, 0, seen)
@@ -345,9 +342,6 @@ func TestNatsLogWriter(t *testing.T) {
require.Error(t, err)
// Wait a moment to ensure no messages were published.
time.Sleep(100 * time.Millisecond)
// Verify that the stream has no messages.
info, err := st.Info(ctx)