@@ -45,14 +45,14 @@ func TestReplicaSetEvents(t *testing.T) {
4545 sourceUUID := agentsdk .ExternalLogSourceID
4646 client := fake .NewSimpleClientset ()
4747
48- cMock := quartz .NewMock (t )
4948 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 ,
5656 })
5757 require .NoError (t , err )
5858
@@ -89,8 +89,8 @@ func TestReplicaSetEvents(t *testing.T) {
8989 require .Equal (t , "Kubernetes" , source .DisplayName )
9090 require .Equal (t , "/icon/k8s.png" , source .Icon )
9191
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 )
9494
9595 logs := testutil .RequireRecvCtx (ctx , t , api .logs )
9696 require .Len (t , logs , 1 )
@@ -113,8 +113,8 @@ func TestReplicaSetEvents(t *testing.T) {
113113 _ , err = client .CoreV1 ().Events (namespace ).Create (ctx , event , v1.CreateOptions {})
114114 require .NoError (t , err )
115115
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 )
118118
119119 logs = testutil .RequireRecvCtx (ctx , t , api .logs )
120120 require .Len (t , logs , 1 )
@@ -123,8 +123,8 @@ func TestReplicaSetEvents(t *testing.T) {
123123 err = client .AppsV1 ().ReplicaSets (namespace ).Delete (ctx , rs .Name , v1.DeleteOptions {})
124124 require .NoError (t , err )
125125
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 )
128128
129129 logs = testutil .RequireRecvCtx (ctx , t , api .logs )
130130 require .Len (t , logs , 1 )
@@ -152,14 +152,14 @@ func TestPodEvents(t *testing.T) {
152152 sourceUUID := agentsdk .ExternalLogSourceID
153153 client := fake .NewSimpleClientset ()
154154
155- cMock := quartz .NewMock (t )
156155 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 ,
163163 })
164164 require .NoError (t , err )
165165
@@ -191,8 +191,8 @@ func TestPodEvents(t *testing.T) {
191191 require .Equal (t , "Kubernetes" , source .DisplayName )
192192 require .Equal (t , "/icon/k8s.png" , source .Icon )
193193
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 )
196196
197197 logs := testutil .RequireRecvCtx (ctx , t , api .logs )
198198 require .Len (t , logs , 1 )
@@ -215,8 +215,8 @@ func TestPodEvents(t *testing.T) {
215215 _ , err = client .CoreV1 ().Events (namespace ).Create (ctx , event , v1.CreateOptions {})
216216 require .NoError (t , err )
217217
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 )
220220
221221 logs = testutil .RequireRecvCtx (ctx , t , api .logs )
222222 require .Len (t , logs , 1 )
@@ -225,8 +225,8 @@ func TestPodEvents(t *testing.T) {
225225 err = client .CoreV1 ().Pods (namespace ).Delete (ctx , pod .Name , v1.DeleteOptions {})
226226 require .NoError (t , err )
227227
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 )
230230
231231 logs = testutil .RequireRecvCtx (ctx , t , api .logs )
232232 require .Len (t , logs , 1 )
@@ -305,17 +305,18 @@ func Test_logQueuer(t *testing.T) {
305305 api := newFakeAgentAPI (t )
306306 agentURL , err := url .Parse (api .server .URL )
307307 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
310310
311311 ch := make (chan agentLog , 10 ) // Buffered channel to prevent blocking
312312 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 {},
319320 logCache : logCache {
320321 logs : map [string ][]agentsdk.Log {},
321322 },
@@ -340,7 +341,10 @@ func Test_logQueuer(t *testing.T) {
340341 // Wait for log source to be created
341342 _ = testutil .RequireRecvCtx (ctx , t , api .logSource )
342343
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
344348 logs := testutil .RequireRecvCtx (ctx , t , api .logs )
345349 require .Len (t , logs , 1 )
346350
@@ -356,6 +360,9 @@ func Test_logQueuer(t *testing.T) {
356360 },
357361 }
358362
363+ // Wait for ticker to fire for second batch
364+ time .Sleep (20 * time .Millisecond )
365+
359366 // Wait for second batch of logs
360367 logs = testutil .RequireRecvCtx (ctx , t , api .logs )
361368 require .Len (t , logs , 1 )
0 commit comments