Skip to content

Commit 17b25b9

Browse files
committed
test activity bump
1 parent e465212 commit 17b25b9

File tree

2 files changed

+40
-5
lines changed

2 files changed

+40
-5
lines changed

coderd/workspaces.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1127,6 +1127,12 @@ func (api *API) postWorkspaceUsage(rw http.ResponseWriter, r *http.Request) {
11271127
return
11281128
}
11291129

1130+
if r.Body == http.NoBody {
1131+
// Continue previous behavior if no body is present.
1132+
rw.WriteHeader(http.StatusNoContent)
1133+
return
1134+
}
1135+
11301136
ctx := r.Context()
11311137
var req codersdk.PostWorkspaceUsageRequest
11321138
if !httpapi.Read(ctx, rw, r, &req) {
@@ -1169,7 +1175,9 @@ func (api *API) postWorkspaceUsage(rw http.ResponseWriter, r *http.Request) {
11691175
return
11701176
}
11711177

1172-
stat := &proto.Stats{}
1178+
stat := &proto.Stats{
1179+
ConnectionCount: 1,
1180+
}
11731181
switch req.AppName {
11741182
case codersdk.UsageAppNameVscode:
11751183
stat.SessionCountVscode = 1

coderd/workspaces_test.go

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3398,26 +3398,46 @@ func TestWorkspaceUsageTracking(t *testing.T) {
33983398
})
33993399
t.Run("Experiment", func(t *testing.T) {
34003400
t.Parallel()
3401+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitMedium)
3402+
defer cancel()
34013403
dv := coderdtest.DeploymentValues(t)
34023404
dv.Experiments = []string{string(codersdk.ExperimentWorkspaceUsage)}
34033405
client, db := coderdtest.NewWithDatabase(t, &coderdtest.Options{
34043406
DeploymentValues: dv,
34053407
})
34063408
user := coderdtest.CreateFirstUser(t, client)
34073409
tmpDir := t.TempDir()
3410+
org := dbgen.Organization(t, db, database.Organization{})
3411+
_ = dbgen.OrganizationMember(t, db, database.OrganizationMember{
3412+
UserID: user.UserID,
3413+
OrganizationID: org.ID,
3414+
})
3415+
templateVersion := dbgen.TemplateVersion(t, db, database.TemplateVersion{
3416+
OrganizationID: org.ID,
3417+
CreatedBy: user.UserID,
3418+
})
3419+
template := dbgen.Template(t, db, database.Template{
3420+
OrganizationID: org.ID,
3421+
ActiveVersionID: templateVersion.ID,
3422+
CreatedBy: user.UserID,
3423+
DefaultTTL: int64(8 * time.Hour),
3424+
})
3425+
_, err := client.UpdateTemplateMeta(ctx, template.ID, codersdk.UpdateTemplateMeta{
3426+
ActivityBumpMillis: int64(1 * time.Hour),
3427+
})
3428+
require.NoError(t, err)
34083429
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
34093430
OrganizationID: user.OrganizationID,
34103431
OwnerID: user.UserID,
3432+
TemplateID: template.ID,
3433+
Ttl: sql.NullInt64{Valid: true, Int64: int64(8 * time.Hour)},
34113434
}).WithAgent(func(agents []*proto.Agent) []*proto.Agent {
34123435
agents[0].Directory = tmpDir
34133436
return agents
34143437
}).Do()
34153438

3416-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitMedium)
3417-
defer cancel()
3418-
34193439
// continue legacy behavior
3420-
err := client.PostWorkspaceUsage(ctx, r.Workspace.ID)
3440+
err = client.PostWorkspaceUsage(ctx, r.Workspace.ID)
34213441
require.NoError(t, err)
34223442
err = client.PostWorkspaceUsageWithBody(ctx, r.Workspace.ID, codersdk.PostWorkspaceUsageRequest{})
34233443
require.NoError(t, err)
@@ -3466,5 +3486,12 @@ func TestWorkspaceUsageTracking(t *testing.T) {
34663486
AppName: "ssh",
34673487
})
34683488
require.NoError(t, err)
3489+
3490+
// ensure deadline has been bumped
3491+
newWorkspace, err := client.Workspace(ctx, r.Workspace.ID)
3492+
require.NoError(t, err)
3493+
require.True(t, workspace.LatestBuild.Deadline.Valid)
3494+
require.True(t, newWorkspace.LatestBuild.Deadline.Valid)
3495+
require.Greater(t, newWorkspace.LatestBuild.Deadline.Time, workspace.LatestBuild.Deadline.Time)
34693496
})
34703497
}

0 commit comments

Comments
 (0)