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

Function TestWorkspaceByOwnerAndName

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

Source from the content-addressed store, hash-verified

1708}
1709
1710func TestWorkspaceByOwnerAndName(t *testing.T) {
1711 t.Parallel()
1712 t.Run("NotFound", func(t *testing.T) {
1713 t.Parallel()
1714 client := coderdtest.New(t, nil)
1715
1716 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
1717 defer cancel()
1718
1719 _, err := client.WorkspaceByOwnerAndName(ctx, codersdk.Me, "something", codersdk.WorkspaceOptions{})
1720 var apiErr *codersdk.Error
1721 require.ErrorAs(t, err, &apiErr)
1722 require.Equal(t, http.StatusUnauthorized, apiErr.StatusCode())
1723 })
1724 t.Run("Get", func(t *testing.T) {
1725 t.Parallel()
1726 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
1727 user := coderdtest.CreateFirstUser(t, client)
1728 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
1729 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
1730 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
1731 workspace := coderdtest.CreateWorkspace(t, client, template.ID)
1732
1733 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
1734 defer cancel()
1735
1736 _, err := client.WorkspaceByOwnerAndName(ctx, codersdk.Me, workspace.Name, codersdk.WorkspaceOptions{})
1737 require.NoError(t, err)
1738 })
1739 t.Run("Deleted", func(t *testing.T) {
1740 t.Parallel()
1741 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
1742 user := coderdtest.CreateFirstUser(t, client)
1743 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
1744 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
1745 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
1746 workspace := coderdtest.CreateWorkspace(t, client, template.ID)
1747 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
1748
1749 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
1750 defer cancel()
1751
1752 // Given:
1753 // We delete the workspace
1754 build, err := client.CreateWorkspaceBuild(ctx, workspace.ID, codersdk.CreateWorkspaceBuildRequest{
1755 Transition: codersdk.WorkspaceTransitionDelete,
1756 })
1757 require.NoError(t, err, "delete the workspace")
1758 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, build.ID)
1759
1760 // Then:
1761 // When we call without includes_deleted, we don't expect to get the workspace back
1762 _, err = client.WorkspaceByOwnerAndName(ctx, workspace.OwnerName, workspace.Name, codersdk.WorkspaceOptions{})
1763 require.ErrorContains(t, err, "404")
1764
1765 // Then:
1766 // When we call with includes_deleted, we should get the workspace back
1767 workspaceNew, err := client.WorkspaceByOwnerAndName(ctx, workspace.OwnerName, workspace.Name, codersdk.WorkspaceOptions{IncludeDeleted: true})

Callers

nothing calls this directly

Calls 13

StatusCodeMethod · 0.95
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
CreateWorkspaceFunction · 0.92
CreateWorkspaceBuildMethod · 0.80
CreateWorkspaceMethod · 0.80
RunMethod · 0.65

Tested by

no test coverage detected