(t *testing.T)
| 1708 | } |
| 1709 | |
| 1710 | func 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}) |
nothing calls this directly
no test coverage detected