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

Function TestWorkspaceUpdateAutomaticUpdates_OK

coderd/workspaces_test.go:3754–3802  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3752}
3753
3754func TestWorkspaceUpdateAutomaticUpdates_OK(t *testing.T) {
3755 t.Parallel()
3756
3757 var (
3758 auditor = audit.NewMock()
3759 adminClient = coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true, Auditor: auditor})
3760 admin = coderdtest.CreateFirstUser(t, adminClient)
3761 client, user = coderdtest.CreateAnotherUser(t, adminClient, admin.OrganizationID)
3762 version = coderdtest.CreateTemplateVersion(t, adminClient, admin.OrganizationID, nil)
3763 _ = coderdtest.AwaitTemplateVersionJobCompleted(t, adminClient, version.ID)
3764 project = coderdtest.CreateTemplate(t, adminClient, admin.OrganizationID, version.ID)
3765 workspace = coderdtest.CreateWorkspace(t, client, project.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
3766 cwr.AutostartSchedule = nil
3767 cwr.TTLMillis = nil
3768 cwr.AutomaticUpdates = codersdk.AutomaticUpdatesNever
3769 })
3770 )
3771
3772 // await job to ensure audit logs for workspace_build start are created
3773 _ = coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
3774
3775 // ensure test invariant: new workspaces have automatic updates set to never
3776 require.Equal(t, codersdk.AutomaticUpdatesNever, workspace.AutomaticUpdates, "expected newly-minted workspace to automatic updates set to never")
3777
3778 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
3779 defer cancel()
3780
3781 err := client.UpdateWorkspaceAutomaticUpdates(ctx, workspace.ID, codersdk.UpdateWorkspaceAutomaticUpdatesRequest{
3782 AutomaticUpdates: codersdk.AutomaticUpdatesAlways,
3783 })
3784 require.NoError(t, err)
3785
3786 updated, err := client.Workspace(ctx, workspace.ID)
3787 require.NoError(t, err)
3788 require.Equal(t, codersdk.AutomaticUpdatesAlways, updated.AutomaticUpdates)
3789
3790 require.Eventually(t, func() bool {
3791 var found bool
3792 for _, l := range auditor.AuditLogs() {
3793 if l.Action == database.AuditActionWrite &&
3794 l.UserID == user.ID &&
3795 l.ResourceID == workspace.ID {
3796 found = true
3797 break
3798 }
3799 }
3800 return found
3801 }, testutil.WaitShort, testutil.IntervalFast, "did not find expected audit log")
3802}
3803
3804func TestUpdateWorkspaceAutomaticUpdates_NotFound(t *testing.T) {
3805 t.Parallel()

Callers

nothing calls this directly

Calls 13

NewMockFunction · 0.92
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
CreateWorkspaceFunction · 0.92
WorkspaceMethod · 0.80
EqualMethod · 0.45

Tested by

no test coverage detected