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

Function TestExecutorAutostopOK

coderd/autobuild/lifecycle_executor_test.go:429–467  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

427}
428
429func TestExecutorAutostopOK(t *testing.T) {
430 t.Parallel()
431
432 var (
433 tickCh = make(chan time.Time)
434 statsCh = make(chan autobuild.Stats)
435 client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{
436 AutobuildTicker: tickCh,
437 IncludeProvisionerDaemon: true,
438 AutobuildStats: statsCh,
439 })
440 // Given: we have a user with a workspace
441 workspace = mustProvisionWorkspace(t, client)
442 )
443 // Given: workspace is running
444 require.Equal(t, codersdk.WorkspaceTransitionStart, workspace.LatestBuild.Transition)
445 require.NotZero(t, workspace.LatestBuild.Deadline)
446
447 p, err := coderdtest.GetProvisionerForTags(db, time.Now(), workspace.OrganizationID, nil)
448 require.NoError(t, err)
449
450 // When: the autobuild executor ticks *after* the deadline:
451 go func() {
452 tickTime := workspace.LatestBuild.Deadline.Time.Add(time.Minute)
453 coderdtest.UpdateProvisionerLastSeenAt(t, db, p.ID, tickTime)
454 tickCh <- tickTime
455 close(tickCh)
456 }()
457
458 // Then: the workspace should be stopped
459 stats := <-statsCh
460 assert.Len(t, stats.Errors, 0)
461 assert.Len(t, stats.Transitions, 1)
462 assert.Contains(t, stats.Transitions, workspace.ID)
463 assert.Equal(t, database.WorkspaceTransitionStop, stats.Transitions[workspace.ID])
464
465 workspace = coderdtest.MustWorkspace(t, client, workspace.ID)
466 assert.Equal(t, codersdk.BuildReasonAutostop, workspace.LatestBuild.Reason)
467}
468
469func TestExecutorAutostopExtend(t *testing.T) {
470 t.Parallel()

Callers

nothing calls this directly

Calls 9

NewWithDatabaseFunction · 0.92
GetProvisionerForTagsFunction · 0.92
MustWorkspaceFunction · 0.92
mustProvisionWorkspaceFunction · 0.85
AddMethod · 0.65
EqualMethod · 0.45
LenMethod · 0.45
ContainsMethod · 0.45

Tested by

no test coverage detected