MCPcopy Index your code
hub / github.com/coder/coder / TestPrebuildActivityBump

Function TestPrebuildActivityBump

enterprise/coderd/workspaces_test.go:2910–3016  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2908}
2909
2910func TestPrebuildActivityBump(t *testing.T) {
2911 t.Parallel()
2912
2913 clock := quartz.NewMock(t)
2914 clock.Set(dbtime.Now())
2915
2916 // Setup
2917 log := testutil.Logger(t)
2918 client, db, owner := coderdenttest.NewWithDatabase(t, &coderdenttest.Options{
2919 Options: &coderdtest.Options{
2920 IncludeProvisionerDaemon: true,
2921 Clock: clock,
2922 },
2923 LicenseOptions: &coderdenttest.LicenseOptions{
2924 Features: license.Features{
2925 codersdk.FeatureWorkspacePrebuilds: 1,
2926 },
2927 },
2928 })
2929
2930 // Given: a template and a template version with preset and a prebuilt workspace
2931 presetID := uuid.New()
2932 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
2933 _ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
2934 // Configure activity bump on the template
2935 activityBump := time.Hour
2936 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
2937 ctr.ActivityBumpMillis = ptr.Ref[int64](activityBump.Milliseconds())
2938 })
2939 dbgen.Preset(t, db, database.InsertPresetParams{
2940 ID: presetID,
2941 TemplateVersionID: version.ID,
2942 DesiredInstances: sql.NullInt32{Int32: 1, Valid: true},
2943 })
2944 // Given: a prebuild with an expired Deadline
2945 deadline := clock.Now().Add(-30 * time.Minute)
2946 wb := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
2947 OwnerID: database.PrebuildsSystemUserID,
2948 TemplateID: template.ID,
2949 }).Seed(database.WorkspaceBuild{
2950 TemplateVersionID: version.ID,
2951 TemplateVersionPresetID: uuid.NullUUID{
2952 UUID: presetID,
2953 Valid: true,
2954 },
2955 Deadline: deadline,
2956 }).WithAgent(func(agent []*proto.Agent) []*proto.Agent {
2957 return agent
2958 }).Do()
2959
2960 // Mark the prebuilt workspace's agent as ready so the prebuild can be claimed
2961 // nolint:gocritic
2962 ctx := dbauthz.AsSystemRestricted(testutil.Context(t, testutil.WaitLong))
2963 agent, err := db.GetAuthenticatedWorkspaceAgentAndBuildByAuthToken(ctx, uuid.MustParse(wb.AgentToken))
2964 require.NoError(t, err)
2965 err = db.UpdateWorkspaceAgentLifecycleStateByID(ctx, database.UpdateWorkspaceAgentLifecycleStateByIDParams{
2966 ID: agent.WorkspaceAgent.ID,
2967 LifecycleState: database.WorkspaceAgentLifecycleStateReady,

Callers

nothing calls this directly

Calls 15

NowFunction · 0.92
LoggerFunction · 0.92
NewWithDatabaseFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
PresetFunction · 0.92
WorkspaceBuildFunction · 0.92
AsSystemRestrictedFunction · 0.92
ContextFunction · 0.92
MustWorkspaceFunction · 0.92
ActivityBumpWorkspaceFunction · 0.92

Tested by

no test coverage detected