@@ -20,6 +20,58 @@ import (
2020 "github.com/coder/coder/provisionersdk/proto"
2121)
2222
23+ func TestWorkspace (t * testing.T ) {
24+ t .Parallel ()
25+
26+ t .Run ("OK" , func (t * testing.T ) {
27+ t .Parallel ()
28+ client := coderdtest .New (t , nil )
29+ user := coderdtest .CreateFirstUser (t , client )
30+ coderdtest .NewProvisionerDaemon (t , client )
31+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
32+ coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
33+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
34+ workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
35+
36+ _ , err := client .Workspace (context .Background (), workspace .ID )
37+ require .NoError (t , err )
38+ })
39+
40+ t .Run ("Deleted" , func (t * testing.T ) {
41+ t .Parallel ()
42+ client := coderdtest .New (t , nil )
43+ user := coderdtest .CreateFirstUser (t , client )
44+ coderdtest .NewProvisionerDaemon (t , client )
45+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
46+ coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
47+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
48+ workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
49+ coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
50+
51+ // Getting with deleted=true should fail.
52+ _ , err := client .DeletedWorkspace (context .Background (), workspace .ID )
53+ require .Error (t , err )
54+ require .ErrorContains (t , err , "400" ) // bad request
55+
56+ // Delete the workspace
57+ build , err := client .CreateWorkspaceBuild (context .Background (), workspace .ID , codersdk.CreateWorkspaceBuildRequest {
58+ Transition : database .WorkspaceTransitionDelete ,
59+ })
60+ require .NoError (t , err , "delete the workspace" )
61+ coderdtest .AwaitWorkspaceBuildJob (t , client , build .ID )
62+
63+ // Getting with deleted=true should work.
64+ workspaceNew , err := client .DeletedWorkspace (context .Background (), workspace .ID )
65+ require .NoError (t , err )
66+ require .Equal (t , workspace .ID , workspaceNew .ID )
67+
68+ // Getting with deleted=false should not work.
69+ _ , err = client .Workspace (context .Background (), workspace .ID )
70+ require .Error (t , err )
71+ require .ErrorContains (t , err , "410" ) // gone
72+ })
73+ }
74+
2375func TestAdminViewAllWorkspaces (t * testing.T ) {
2476 t .Parallel ()
2577 client := coderdtest .New (t , nil )
0 commit comments