(t *testing.T)
| 1867 | } |
| 1868 | |
| 1869 | func 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 | |
| 1912 | func TestPrebuildsAutobuild(t *testing.T) { |
| 1913 | t.Parallel() |
nothing calls this directly
no test coverage detected