@@ -1220,6 +1220,52 @@ func TestWorkspaceFilterManual(t *testing.T) {
1220
1220
require .Len (t , res .Workspaces , 1 )
1221
1221
require .Equal (t , workspace .ID , res .Workspaces [0 ].ID )
1222
1222
})
1223
+ t .Run ("Status" , func (t * testing.T ) {
1224
+ t .Parallel ()
1225
+
1226
+ client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
1227
+ user := coderdtest .CreateFirstUser (t , client )
1228
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
1229
+ coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , version .ID )
1230
+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
1231
+ workspace1 := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
1232
+ workspace2 := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
1233
+
1234
+ // wait for workspaces to be "running"
1235
+ _ = coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace1 .LatestBuild .ID )
1236
+ _ = coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace2 .LatestBuild .ID )
1237
+
1238
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
1239
+ defer cancel ()
1240
+
1241
+ // filter finds both running workspaces
1242
+ ws1 , err := client .Workspaces (ctx , codersdk.WorkspaceFilter {})
1243
+ require .NoError (t , err )
1244
+ require .Len (t , ws1 .Workspaces , 2 )
1245
+
1246
+ // stop workspace1
1247
+ build1 := coderdtest .CreateWorkspaceBuild (t , client , workspace1 , database .WorkspaceTransitionStop )
1248
+ _ = coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , build1 .ID )
1249
+
1250
+ // filter finds one running workspace
1251
+ ws2 , err := client .Workspaces (ctx , codersdk.WorkspaceFilter {
1252
+ Status : "running" ,
1253
+ })
1254
+ require .NoError (t , err )
1255
+ require .Len (t , ws2 .Workspaces , 1 )
1256
+ require .Equal (t , workspace2 .ID , ws2 .Workspaces [0 ].ID )
1257
+
1258
+ // stop workspace2
1259
+ build2 := coderdtest .CreateWorkspaceBuild (t , client , workspace2 , database .WorkspaceTransitionStop )
1260
+ _ = coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , build2 .ID )
1261
+
1262
+ // filter finds no running workspaces
1263
+ ws3 , err := client .Workspaces (ctx , codersdk.WorkspaceFilter {
1264
+ Status : "running" ,
1265
+ })
1266
+ require .NoError (t , err )
1267
+ require .Len (t , ws3 .Workspaces , 0 )
1268
+ })
1223
1269
t .Run ("FilterQuery" , func (t * testing.T ) {
1224
1270
t .Parallel ()
1225
1271
client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
0 commit comments