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

Function TestPatchTemplateMeta

coderd/templates_test.go:889–1837  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

887}
888
889func TestPatchTemplateMeta(t *testing.T) {
890 t.Parallel()
891
892 t.Run("Modified", func(t *testing.T) {
893 t.Parallel()
894
895 auditor := audit.NewMock()
896 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true, Auditor: auditor})
897 user := coderdtest.CreateFirstUser(t, client)
898 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
899 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
900 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
901 assert.Equal(t, (1 * time.Hour).Milliseconds(), template.ActivityBumpMillis)
902
903 req := codersdk.UpdateTemplateMeta{
904 Name: ptr.Ref("new-template-name"),
905 DisplayName: ptr.Ref("Displayed Name 456"),
906 Description: ptr.Ref("lorem ipsum dolor sit amet et cetera"),
907 Icon: ptr.Ref("/icon/new-icon.png"),
908 DefaultTTLMillis: ptr.Ref(12 * time.Hour.Milliseconds()),
909 ActivityBumpMillis: ptr.Ref(3 * time.Hour.Milliseconds()),
910 AllowUserCancelWorkspaceJobs: ptr.Ref(false),
911 }
912 // It is unfortunate we need to sleep, but the test can fail if the
913 // updatedAt is too close together.
914 time.Sleep(time.Millisecond * 5)
915
916 ctx := testutil.Context(t, testutil.WaitLong)
917
918 updated, err := client.UpdateTemplateMeta(ctx, template.ID, req)
919 require.NoError(t, err)
920 assert.Greater(t, updated.UpdatedAt, template.UpdatedAt)
921 assert.Equal(t, *req.Name, updated.Name)
922 assert.Equal(t, *req.DisplayName, updated.DisplayName)
923 assert.Equal(t, *req.Description, updated.Description)
924 assert.Equal(t, *req.Icon, updated.Icon)
925 assert.Equal(t, *req.DefaultTTLMillis, updated.DefaultTTLMillis)
926 assert.Equal(t, *req.ActivityBumpMillis, updated.ActivityBumpMillis)
927 assert.False(t, *req.AllowUserCancelWorkspaceJobs)
928
929 // Extra paranoid: did it _really_ happen?
930 updated, err = client.Template(ctx, template.ID)
931 require.NoError(t, err)
932 assert.Greater(t, updated.UpdatedAt, template.UpdatedAt)
933 assert.Equal(t, *req.Name, updated.Name)
934 assert.Equal(t, *req.DisplayName, updated.DisplayName)
935 assert.Equal(t, *req.Description, updated.Description)
936 assert.Equal(t, *req.Icon, updated.Icon)
937 assert.Equal(t, *req.DefaultTTLMillis, updated.DefaultTTLMillis)
938 assert.Equal(t, *req.ActivityBumpMillis, updated.ActivityBumpMillis)
939 assert.False(t, *req.AllowUserCancelWorkspaceJobs)
940
941 require.Len(t, auditor.AuditLogs(), 5)
942 assert.Equal(t, database.AuditActionWrite, auditor.AuditLogs()[4].Action)
943 })
944
945 t.Run("AlreadyExists", func(t *testing.T) {
946 t.Parallel()

Callers

nothing calls this directly

Calls 15

StatusCodeMethod · 0.95
NewMockFunction · 0.92
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
RefFunction · 0.92
ContextFunction · 0.92
CreateAnotherUserFunction · 0.92
NewWithDatabaseFunction · 0.92

Tested by

no test coverage detected