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

Function MustTransitionWorkspace

coderd/coderdtest/coderdtest.go:1463–1487  ·  view source on GitHub ↗

TransitionWorkspace is a convenience method for transitioning a workspace from one state to another.

(t testing.TB, client *codersdk.Client, workspaceID uuid.UUID, from, to codersdk.WorkspaceTransition, muts ...func(req *codersdk.CreateWorkspaceBuildRequest))

Source from the content-addressed store, hash-verified

1461
1462// TransitionWorkspace is a convenience method for transitioning a workspace from one state to another.
1463func MustTransitionWorkspace(t testing.TB, client *codersdk.Client, workspaceID uuid.UUID, from, to codersdk.WorkspaceTransition, muts ...func(req *codersdk.CreateWorkspaceBuildRequest)) codersdk.Workspace {
1464 t.Helper()
1465 ctx := context.Background()
1466 workspace, err := client.Workspace(ctx, workspaceID)
1467 require.NoError(t, err, "unexpected error fetching workspace")
1468 require.Equal(t, workspace.LatestBuild.Transition, from, "expected workspace state: %s got: %s", from, workspace.LatestBuild.Transition)
1469
1470 req := codersdk.CreateWorkspaceBuildRequest{
1471 TemplateVersionID: workspace.LatestBuild.TemplateVersionID,
1472 Transition: to,
1473 }
1474
1475 for _, mut := range muts {
1476 mut(&req)
1477 }
1478
1479 build, err := client.CreateWorkspaceBuild(ctx, workspace.ID, req)
1480 require.NoError(t, err, "unexpected error transitioning workspace to %s", to)
1481
1482 _ = AwaitWorkspaceBuildJobCompleted(t, client, build.ID)
1483
1484 updated := MustWorkspace(t, client, workspace.ID)
1485 require.Equal(t, to, updated.LatestBuild.Transition, "expected workspace to be in state %s but got %s", to, updated.LatestBuild.Transition)
1486 return updated
1487}
1488
1489// MustWorkspace is a convenience method for fetching a workspace that should exist.
1490func MustWorkspace(t testing.TB, client *codersdk.Client, workspaceID uuid.UUID) codersdk.Workspace {

Calls 6

MustWorkspaceFunction · 0.85
WorkspaceMethod · 0.80
CreateWorkspaceBuildMethod · 0.80
HelperMethod · 0.65
EqualMethod · 0.45