@@ -45,14 +45,14 @@ func TestReplicaSetEvents(t *testing.T){
4545sourceUUID := agentsdk .ExternalLogSourceID
4646client := fake .NewSimpleClientset ()
4747
48- cMock := quartz .NewMock (t )
4948reporter , 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 })
5757require .NoError (t , err )
5858
@@ -89,8 +89,8 @@ func TestReplicaSetEvents(t *testing.T){
8989require .Equal (t , "Kubernetes" , source .DisplayName )
9090require .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
9595logs := testutil .RequireRecvCtx (ctx , t , api .logs )
9696require .Len (t , logs , 1 )
@@ -113,8 +113,8 @@ func TestReplicaSetEvents(t *testing.T){
113113_ , err = client .CoreV1 ().Events (namespace ).Create (ctx , event , v1.CreateOptions {})
114114require .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
119119logs = testutil .RequireRecvCtx (ctx , t , api .logs )
120120require .Len (t , logs , 1 )
@@ -123,8 +123,8 @@ func TestReplicaSetEvents(t *testing.T){
123123err = client .AppsV1 ().ReplicaSets (namespace ).Delete (ctx , rs .Name , v1.DeleteOptions {})
124124require .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
129129logs = testutil .RequireRecvCtx (ctx , t , api .logs )
130130require .Len (t , logs , 1 )
@@ -152,14 +152,14 @@ func TestPodEvents(t *testing.T){
152152sourceUUID := agentsdk .ExternalLogSourceID
153153client := fake .NewSimpleClientset ()
154154
155- cMock := quartz .NewMock (t )
156155reporter , 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 })
164164require .NoError (t , err )
165165
@@ -191,8 +191,8 @@ func TestPodEvents(t *testing.T){
191191require .Equal (t , "Kubernetes" , source .DisplayName )
192192require .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
197197logs := testutil .RequireRecvCtx (ctx , t , api .logs )
198198require .Len (t , logs , 1 )
@@ -215,8 +215,8 @@ func TestPodEvents(t *testing.T){
215215_ , err = client .CoreV1 ().Events (namespace ).Create (ctx , event , v1.CreateOptions {})
216216require .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
221221logs = testutil .RequireRecvCtx (ctx , t , api .logs )
222222require .Len (t , logs , 1 )
@@ -225,8 +225,8 @@ func TestPodEvents(t *testing.T){
225225err = client .CoreV1 ().Pods (namespace ).Delete (ctx , pod .Name , v1.DeleteOptions {})
226226require .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
231231logs = testutil .RequireRecvCtx (ctx , t , api .logs )
232232require .Len (t , logs , 1 )
@@ -305,17 +305,18 @@ func Test_logQueuer(t *testing.T){
305305api := newFakeAgentAPI (t )
306306agentURL , err := url .Parse (api .server .URL )
307307require .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
311311ch := make (chan agentLog , 10 ) // Buffered channel to prevent blocking
312312lq := & 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 {},
319320logCache : logCache {
320321logs : 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
344348logs := testutil .RequireRecvCtx (ctx , t , api .logs )
345349require .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
360367logs = testutil .RequireRecvCtx (ctx , t , api .logs )
361368require .Len (t , logs , 1 )
0 commit comments