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

Function TestTemplateDoesNotAllowUserAutostop

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

Source from the content-addressed store, hash-verified

1867}
1868
1869func TestTemplateDoesNotAllowUserAutostop(t *testing.T) {
1870 t.Parallel()
1871
1872 t.Run("TTLSetByTemplate", func(t *testing.T) {
1873 t.Parallel()
1874 logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
1875 client := coderdtest.New(t, &coderdtest.Options{
1876 IncludeProvisionerDaemon: true,
1877 TemplateScheduleStore: schedule.NewEnterpriseTemplateScheduleStore(agplUserQuietHoursScheduleStore(), notifications.NewNoopEnqueuer(), logger, nil),
1878 })
1879 user := coderdtest.CreateFirstUser(t, client)
1880 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
1881 templateTTL := 24 * time.Hour.Milliseconds()
1882 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(ctr *codersdk.CreateTemplateRequest) {
1883 ctr.DefaultTTLMillis = ptr.Ref(templateTTL)
1884 ctr.AllowUserAutostop = ptr.Ref(false)
1885 })
1886 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
1887 workspace := coderdtest.CreateWorkspace(t, client, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
1888 cwr.TTLMillis = nil // ensure that no default TTL is set
1889 })
1890 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
1891
1892 // TTL should be set by the template
1893 require.Equal(t, false, template.AllowUserAutostop)
1894 require.Equal(t, templateTTL, template.DefaultTTLMillis)
1895 require.Equal(t, templateTTL, *workspace.TTLMillis)
1896
1897 // Change the template's default TTL and refetch the workspace
1898 templateTTL = 72 * time.Hour.Milliseconds()
1899 ctx := testutil.Context(t, testutil.WaitShort)
1900 template = coderdtest.UpdateTemplateMeta(t, client, template.ID, codersdk.UpdateTemplateMeta{
1901 DefaultTTLMillis: ptr.Ref(templateTTL),
1902 })
1903 workspace, err := client.Workspace(ctx, workspace.ID)
1904 require.NoError(t, err)
1905
1906 // Ensure that the new value is reflected in the template and workspace
1907 require.Equal(t, templateTTL, template.DefaultTTLMillis)
1908 require.Equal(t, templateTTL, *workspace.TTLMillis)
1909 })
1910}
1911
1912func TestPrebuildsAutobuild(t *testing.T) {
1913 t.Parallel()

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
NewNoopEnqueuerFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
RefFunction · 0.92
CreateWorkspaceFunction · 0.92
ContextFunction · 0.92
UpdateTemplateMetaFunction · 0.92

Tested by

no test coverage detected