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

Function TestExecutorInactiveWorkspace

coderd/autobuild/lifecycle_executor_test.go:1221–1265  ·  view source on GitHub ↗

TestExecutorInactiveWorkspace test AGPL functionality which mainly ensures that autostop actions as a result of an inactive workspace do not trigger. For enterprise functionality see enterprise/coderd/workspaces_test.go

(t *testing.T)

Source from the content-addressed store, hash-verified

1219// do not trigger.
1220// For enterprise functionality see enterprise/coderd/workspaces_test.go
1221func TestExecutorInactiveWorkspace(t *testing.T) {
1222 t.Parallel()
1223
1224 // Test that an AGPL TemplateScheduleStore properly disables
1225 // functionality.
1226 t.Run("OK", func(t *testing.T) {
1227 t.Parallel()
1228
1229 var (
1230 ticker = make(chan time.Time)
1231 statCh = make(chan autobuild.Stats)
1232 logger = slogtest.Make(t, &slogtest.Options{
1233 // We ignore errors here since we expect to fail
1234 // builds.
1235 IgnoreErrors: true,
1236 })
1237 inactiveTTL = time.Millisecond
1238
1239 client = coderdtest.New(t, &coderdtest.Options{
1240 Logger: &logger,
1241 AutobuildTicker: ticker,
1242 IncludeProvisionerDaemon: true,
1243 AutobuildStats: statCh,
1244 TemplateScheduleStore: schedule.NewAGPLTemplateScheduleStore(),
1245 })
1246 )
1247 user := coderdtest.CreateFirstUser(t, client)
1248 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
1249 Parse: echo.ParseComplete,
1250 ProvisionPlan: echo.PlanComplete,
1251 ProvisionApply: echo.ApplyComplete,
1252 })
1253 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
1254 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
1255 ctr.TimeTilDormantMillis = ptr.Ref[int64](inactiveTTL.Milliseconds())
1256 })
1257 ws := coderdtest.CreateWorkspace(t, client, template.ID)
1258 build := coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, ws.LatestBuild.ID)
1259 require.Equal(t, codersdk.WorkspaceStatusRunning, build.Status)
1260 ticker <- ws.LastUsedAt.Add(inactiveTTL * 2)
1261 stats := <-statCh
1262 // Expect no transitions since we're using AGPL.
1263 require.Len(t, stats.Transitions, 0)
1264 })
1265}
1266
1267func TestNotifications(t *testing.T) {
1268 t.Parallel()

Callers

nothing calls this directly

Calls 12

NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
CreateWorkspaceFunction · 0.92
RunMethod · 0.65
AddMethod · 0.65
EqualMethod · 0.45
LenMethod · 0.45

Tested by

no test coverage detected