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

Function TestWorkspaceCreateWithImplicitPreset

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

Source from the content-addressed store, hash-verified

6129}
6130
6131func TestWorkspaceCreateWithImplicitPreset(t *testing.T) {
6132 t.Parallel()
6133
6134 // Helper function to create template with presets
6135 createTemplateWithPresets := func(t *testing.T, client *codersdk.Client, user codersdk.CreateFirstUserResponse, presets []*proto.Preset) (codersdk.Template, codersdk.TemplateVersion) {
6136 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
6137 Parse: echo.ParseComplete,
6138 ProvisionGraph: []*proto.Response{
6139 {
6140 Type: &proto.Response_Graph{
6141 Graph: &proto.GraphComplete{
6142 Presets: presets,
6143 },
6144 },
6145 },
6146 },
6147 })
6148 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
6149 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
6150 return template, version
6151 }
6152
6153 // Helper function to create workspace and verify preset usage
6154 createWorkspaceAndVerifyPreset := func(t *testing.T, client *codersdk.Client, template codersdk.Template, expectedPresetID *uuid.UUID, params []codersdk.WorkspaceBuildParameter) codersdk.Workspace {
6155 wsName := testutil.GetRandomNameHyphenated(t)
6156 var ws codersdk.Workspace
6157 if len(params) > 0 {
6158 ws = coderdtest.CreateWorkspace(t, client, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
6159 cwr.Name = wsName
6160 cwr.RichParameterValues = params
6161 })
6162 } else {
6163 ws = coderdtest.CreateWorkspace(t, client, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
6164 cwr.Name = wsName
6165 })
6166 }
6167 require.Equal(t, wsName, ws.Name)
6168
6169 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, ws.LatestBuild.ID)
6170
6171 // Verify the preset was used if expected
6172 if expectedPresetID != nil {
6173 require.NotNil(t, ws.LatestBuild.TemplateVersionPresetID)
6174 require.Equal(t, *expectedPresetID, *ws.LatestBuild.TemplateVersionPresetID)
6175 } else {
6176 require.Nil(t, ws.LatestBuild.TemplateVersionPresetID)
6177 }
6178
6179 return ws
6180 }
6181
6182 t.Run("NoPresets", func(t *testing.T) {
6183 t.Parallel()
6184
6185 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
6186 user := coderdtest.CreateFirstUser(t, client)
6187
6188 // Create template with no presets

Callers

nothing calls this directly

Calls 12

CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
GetRandomNameHyphenatedFunction · 0.92
CreateWorkspaceFunction · 0.92
NewFunction · 0.92
CreateFirstUserFunction · 0.92
RunMethod · 0.65
EqualMethod · 0.45
LenMethod · 0.45

Tested by

no test coverage detected