(t *testing.T)
| 14190 | } |
| 14191 | |
| 14192 | func TestChatStartWorkspace_RequireActiveVersion(t *testing.T) { |
| 14193 | t.Parallel() |
| 14194 | |
| 14195 | ctx := testutil.Context(t, testutil.WaitLong) |
| 14196 | rawClient, _, api := coderdtest.NewWithAPI(t, &coderdtest.Options{}) |
| 14197 | var store dbauthz.AccessControlStore = requireActiveVersionStore{} |
| 14198 | api.AccessControlStore.Store(&store) |
| 14199 | db := api.Database |
| 14200 | user := coderdtest.CreateFirstUser(t, rawClient) |
| 14201 | |
| 14202 | // Given: active template version v1 plus workspace stopped on v1. |
| 14203 | wsResp := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{ |
| 14204 | OwnerID: user.UserID, |
| 14205 | OrganizationID: user.OrganizationID, |
| 14206 | }).Seed(database.WorkspaceBuild{ |
| 14207 | Transition: database.WorkspaceTransitionStop, |
| 14208 | }).Do() |
| 14209 | tmplID := wsResp.Workspace.TemplateID |
| 14210 | v1ID := wsResp.Build.TemplateVersionID |
| 14211 | |
| 14212 | // Given: a new active version v2 is published. |
| 14213 | v2Resp := dbfake.TemplateVersion(t, db).Seed(database.TemplateVersion{ |
| 14214 | TemplateID: uuid.NullUUID{UUID: tmplID, Valid: true}, |
| 14215 | OrganizationID: user.OrganizationID, |
| 14216 | CreatedBy: user.UserID, |
| 14217 | }).Do() |
| 14218 | v2 := v2Resp.TemplateVersion |
| 14219 | require.NotEqual(t, v1ID, v2.ID, "v2 must differ from v1") |
| 14220 | |
| 14221 | // When: we start the workspace through chatStartWorkspace. |
| 14222 | build, err := coderd.ChatStartWorkspace(api, ctx, user.UserID, wsResp.Workspace.ID, |
| 14223 | codersdk.CreateWorkspaceBuildRequest{ |
| 14224 | Transition: codersdk.WorkspaceTransitionStart, |
| 14225 | }) |
| 14226 | |
| 14227 | // Then: the build is auto-updated to the active version. |
| 14228 | require.NoError(t, err) |
| 14229 | require.Equal(t, v2.ID, build.TemplateVersionID, "build must be on the active version") |
| 14230 | require.Nil(t, build.TemplateVersionPresetID, "no preset must be applied") |
| 14231 | } |
| 14232 | |
| 14233 | func TestChatStopWorkspace_BypassesRequireActiveVersion(t *testing.T) { |
| 14234 | t.Parallel() |
nothing calls this directly
no test coverage detected