@@ -45,14 +45,14 @@ func TestReplicaSetEvents(t *testing.T) {
45
45
sourceUUID := agentsdk .ExternalLogSourceID
46
46
client := fake .NewSimpleClientset ()
47
47
48
- cMock := quartz .NewMock (t )
49
48
reporter , err := newPodEventLogger (ctx , podEventLoggerOptions {
50
- client : client ,
51
- coderURL : agentURL ,
52
- namespaces : namespace ,
53
- logger : slogtest .Make (t , nil ).Leveled (slog .LevelDebug ),
54
- logDebounce : 5 * time .Second ,
55
- clock : cMock ,
49
+ client : client ,
50
+ coderURL : agentURL ,
51
+ namespaces : namespace ,
52
+ logger : slogtest .Make (t , nil ).Leveled (slog .LevelDebug ),
53
+ logDebounce : 5 * time .Second ,
54
+ clock : quartz .NewReal (),
55
+ tickInterval : 10 * time .Millisecond ,
56
56
})
57
57
require .NoError (t , err )
58
58
@@ -89,8 +89,8 @@ func TestReplicaSetEvents(t *testing.T) {
89
89
require .Equal (t , "Kubernetes" , source .DisplayName )
90
90
require .Equal (t , "/icon/k8s.png" , source .Icon )
91
91
92
- // Advance clock to trigger log flush
93
- cMock . Advance ( time .Second )
92
+ // Wait for ticker to fire (ticker fires every 10ms)
93
+ time . Sleep ( 50 * time .Millisecond )
94
94
95
95
logs := testutil .RequireRecvCtx (ctx , t , api .logs )
96
96
require .Len (t , logs , 1 )
@@ -113,8 +113,8 @@ func TestReplicaSetEvents(t *testing.T) {
113
113
_ , err = client .CoreV1 ().Events (namespace ).Create (ctx , event , v1.CreateOptions {})
114
114
require .NoError (t , err )
115
115
116
- // Advance clock to trigger log flush
117
- cMock . Advance ( time .Second )
116
+ // Wait for ticker to fire (ticker fires every 10ms)
117
+ time . Sleep ( 50 * time .Millisecond )
118
118
119
119
logs = testutil .RequireRecvCtx (ctx , t , api .logs )
120
120
require .Len (t , logs , 1 )
@@ -123,8 +123,8 @@ func TestReplicaSetEvents(t *testing.T) {
123
123
err = client .AppsV1 ().ReplicaSets (namespace ).Delete (ctx , rs .Name , v1.DeleteOptions {})
124
124
require .NoError (t , err )
125
125
126
- // Advance clock to trigger log flush
127
- cMock . Advance ( time .Second )
126
+ // Wait for ticker to fire (ticker fires every 10ms)
127
+ time . Sleep ( 50 * time .Millisecond )
128
128
129
129
logs = testutil .RequireRecvCtx (ctx , t , api .logs )
130
130
require .Len (t , logs , 1 )
@@ -152,14 +152,14 @@ func TestPodEvents(t *testing.T) {
152
152
sourceUUID := agentsdk .ExternalLogSourceID
153
153
client := fake .NewSimpleClientset ()
154
154
155
- cMock := quartz .NewMock (t )
156
155
reporter , err := newPodEventLogger (ctx , podEventLoggerOptions {
157
- client : client ,
158
- coderURL : agentURL ,
159
- namespaces : namespace ,
160
- logger : slogtest .Make (t , nil ).Leveled (slog .LevelDebug ),
161
- logDebounce : 5 * time .Second ,
162
- clock : cMock ,
156
+ client : client ,
157
+ coderURL : agentURL ,
158
+ namespaces : namespace ,
159
+ logger : slogtest .Make (t , nil ).Leveled (slog .LevelDebug ),
160
+ logDebounce : 5 * time .Second ,
161
+ clock : quartz .NewReal (),
162
+ tickInterval : 10 * time .Millisecond ,
163
163
})
164
164
require .NoError (t , err )
165
165
@@ -191,8 +191,8 @@ func TestPodEvents(t *testing.T) {
191
191
require .Equal (t , "Kubernetes" , source .DisplayName )
192
192
require .Equal (t , "/icon/k8s.png" , source .Icon )
193
193
194
- // Advance clock to trigger log flush
195
- cMock . Advance ( time .Second )
194
+ // Wait for ticker to fire (ticker fires every 10ms)
195
+ time . Sleep ( 50 * time .Millisecond )
196
196
197
197
logs := testutil .RequireRecvCtx (ctx , t , api .logs )
198
198
require .Len (t , logs , 1 )
@@ -215,8 +215,8 @@ func TestPodEvents(t *testing.T) {
215
215
_ , err = client .CoreV1 ().Events (namespace ).Create (ctx , event , v1.CreateOptions {})
216
216
require .NoError (t , err )
217
217
218
- // Advance clock to trigger log flush
219
- cMock . Advance ( time .Second )
218
+ // Wait for ticker to fire (ticker fires every 10ms)
219
+ time . Sleep ( 50 * time .Millisecond )
220
220
221
221
logs = testutil .RequireRecvCtx (ctx , t , api .logs )
222
222
require .Len (t , logs , 1 )
@@ -225,8 +225,8 @@ func TestPodEvents(t *testing.T) {
225
225
err = client .CoreV1 ().Pods (namespace ).Delete (ctx , pod .Name , v1.DeleteOptions {})
226
226
require .NoError (t , err )
227
227
228
- // Advance clock to trigger log flush
229
- cMock . Advance ( time .Second )
228
+ // Wait for ticker to fire (ticker fires every 10ms)
229
+ time . Sleep ( 50 * time .Millisecond )
230
230
231
231
logs = testutil .RequireRecvCtx (ctx , t , api .logs )
232
232
require .Len (t , logs , 1 )
@@ -305,17 +305,18 @@ func Test_logQueuer(t *testing.T) {
305
305
api := newFakeAgentAPI (t )
306
306
agentURL , err := url .Parse (api .server .URL )
307
307
require .NoError (t , err )
308
- clock := quartz .NewReal () // Use real clock for simplicity
309
- ttl := 100 * time .Millisecond // Short TTL for faster test
308
+ clock := quartz .NewReal () // Use real clock with fast intervals
309
+ ttl := 5 * time .Second // TTL longer than ticker interval
310
310
311
311
ch := make (chan agentLog , 10 ) // Buffered channel to prevent blocking
312
312
lq := & logQueuer {
313
- logger : slogtest .Make (t , nil ),
314
- clock : clock ,
315
- q : ch ,
316
- coderURL : agentURL ,
317
- loggerTTL : ttl ,
318
- loggers : map [string ]agentLoggerLifecycle {},
313
+ logger : slogtest .Make (t , nil ),
314
+ clock : clock ,
315
+ q : ch ,
316
+ coderURL : agentURL ,
317
+ loggerTTL : ttl ,
318
+ tickInterval : 10 * time .Millisecond , // Fast ticking for tests
319
+ loggers : map [string ]agentLoggerLifecycle {},
319
320
logCache : logCache {
320
321
logs : map [string ][]agentsdk.Log {},
321
322
},
@@ -340,7 +341,10 @@ func Test_logQueuer(t *testing.T) {
340
341
// Wait for log source to be created
341
342
_ = testutil .RequireRecvCtx (ctx , t , api .logSource )
342
343
343
- // Wait for logs to be sent (ticker fires every second)
344
+ // Wait for ticker to fire (ticker fires every 10ms)
345
+ time .Sleep (20 * time .Millisecond )
346
+
347
+ // Wait for logs to be sent
344
348
logs := testutil .RequireRecvCtx (ctx , t , api .logs )
345
349
require .Len (t , logs , 1 )
346
350
@@ -356,6 +360,9 @@ func Test_logQueuer(t *testing.T) {
356
360
},
357
361
}
358
362
363
+ // Wait for ticker to fire for second batch
364
+ time .Sleep (20 * time .Millisecond )
365
+
359
366
// Wait for second batch of logs
360
367
logs = testutil .RequireRecvCtx (ctx , t , api .logs )
361
368
require .Len (t , logs , 1 )
0 commit comments