@@ -48,16 +48,26 @@ func TestDeploymentInsights(t *testing.T) {
48
48
db , ps := dbtestutil .NewDB (t , dbtestutil .WithDumpOnFailure ())
49
49
logger := testutil .Logger (t )
50
50
rollupEvents := make (chan dbrollup.Event )
51
+ statsInterval := 500 * time .Millisecond
52
+ batcher , closeBatcher , err := workspacestats .NewBatcher (context .Background (),
53
+ workspacestats .BatcherWithLogger (logger .Named ("batcher" ).Leveled (slog .LevelDebug )),
54
+ workspacestats .BatcherWithStore (db ),
55
+ workspacestats .BatcherWithBatchSize (1 ),
56
+ workspacestats .BatcherWithInterval (statsInterval ),
57
+ )
58
+ require .NoError (t , err )
59
+ defer closeBatcher ()
51
60
client := coderdtest .New (t , & coderdtest.Options {
52
61
Database : db ,
53
62
Pubsub : ps ,
54
63
Logger : & logger ,
55
64
IncludeProvisionerDaemon : true ,
56
- AgentStatsRefreshInterval : time .Millisecond * 100 ,
65
+ AgentStatsRefreshInterval : statsInterval ,
66
+ StatsBatcher : batcher ,
57
67
DatabaseRolluper : dbrollup .New (
58
68
logger .Named ("dbrollup" ).Leveled (slog .LevelDebug ),
59
69
db ,
60
- dbrollup .WithInterval (time . Millisecond * 100 ),
70
+ dbrollup .WithInterval (statsInterval / 2 ),
61
71
dbrollup .WithEventChannel (rollupEvents ),
62
72
),
63
73
})
@@ -76,7 +86,7 @@ func TestDeploymentInsights(t *testing.T) {
76
86
workspace := coderdtest .CreateWorkspace (t , client , template .ID )
77
87
coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace .LatestBuild .ID )
78
88
79
- ctx := testutil .Context (t , testutil .WaitLong )
89
+ ctx := testutil .Context (t , testutil .WaitSuperLong )
80
90
81
91
// Pre-check, no permission issues.
82
92
daus , err := client .DeploymentDAUs (ctx , codersdk .TimezoneOffsetHour (clientTz ))
@@ -108,6 +118,13 @@ func TestDeploymentInsights(t *testing.T) {
108
118
err = sess .Start ("cat" )
109
119
require .NoError (t , err )
110
120
121
+ select {
122
+ case <- ctx .Done ():
123
+ require .Fail (t , "timed out waiting for initial rollup event" )
124
+ case ev := <- rollupEvents :
125
+ require .True (t , ev .Init , "want init event" )
126
+ }
127
+
111
128
for {
112
129
select {
113
130
case <- ctx .Done ():
@@ -120,6 +137,7 @@ func TestDeploymentInsights(t *testing.T) {
120
137
if len (daus .Entries ) > 0 && daus .Entries [len (daus .Entries )- 1 ].Amount > 0 {
121
138
break
122
139
}
140
+ t .Logf ("waiting for deployment daus to update: %+v" , daus )
123
141
}
124
142
}
125
143
0 commit comments