@@ -3167,6 +3167,63 @@ func TestInsertWorkspaceResource(t *testing.T) {
3167
3167
require .Equal (t , []database.DisplayApp {}, agent .DisplayApps )
3168
3168
})
3169
3169
3170
+ t .Run ("WorkspaceApps" , func (t * testing.T ) {
3171
+ t .Parallel ()
3172
+ db , _ := dbtestutil .NewDB (t )
3173
+ dbtestutil .DisableForeignKeysAndTriggers (t , db )
3174
+ job := uuid .New ()
3175
+ err := insert (db , job , & sdkproto.Resource {
3176
+ Name : "something" ,
3177
+ Type : "aws_instance" ,
3178
+ Agents : []* sdkproto.Agent {{
3179
+ Name : "dev" ,
3180
+ DisplayApps : & sdkproto.DisplayApps {
3181
+ Vscode : true ,
3182
+ WebTerminal : true ,
3183
+ SshHelper : true ,
3184
+ },
3185
+ WorkspaceApps : []string {"vscode" , "custom-app" },
3186
+ }},
3187
+ })
3188
+ require .NoError (t , err )
3189
+ resources , err := db .GetWorkspaceResourcesByJobID (ctx , job )
3190
+ require .NoError (t , err )
3191
+ require .Len (t , resources , 1 )
3192
+ agents , err := db .GetWorkspaceAgentsByResourceIDs (ctx , []uuid.UUID {resources [0 ].ID })
3193
+ require .NoError (t , err )
3194
+ require .Len (t , agents , 1 )
3195
+ agent := agents [0 ]
3196
+ require .Equal (t , []string {"vscode" , "custom-app" }, agent .WorkspaceApps )
3197
+ })
3198
+
3199
+ t .Run ("WorkspaceAppsEmpty" , func (t * testing.T ) {
3200
+ t .Parallel ()
3201
+ db , _ := dbtestutil .NewDB (t )
3202
+ dbtestutil .DisableForeignKeysAndTriggers (t , db )
3203
+ job := uuid .New ()
3204
+ err := insert (db , job , & sdkproto.Resource {
3205
+ Name : "something" ,
3206
+ Type : "aws_instance" ,
3207
+ Agents : []* sdkproto.Agent {{
3208
+ Name : "dev" ,
3209
+ DisplayApps : & sdkproto.DisplayApps {
3210
+ Vscode : true ,
3211
+ },
3212
+ // WorkspaceApps not specified, should be nil
3213
+ }},
3214
+ })
3215
+ require .NoError (t , err )
3216
+ resources , err := db .GetWorkspaceResourcesByJobID (ctx , job )
3217
+ require .NoError (t , err )
3218
+ require .Len (t , resources , 1 )
3219
+ agents , err := db .GetWorkspaceAgentsByResourceIDs (ctx , []uuid.UUID {resources [0 ].ID })
3220
+ require .NoError (t , err )
3221
+ require .Len (t , agents , 1 )
3222
+ agent := agents [0 ]
3223
+ // When WorkspaceApps is not specified, it should be nil (default behavior)
3224
+ require .Nil (t , agent .WorkspaceApps )
3225
+ })
3226
+
3170
3227
t .Run ("ResourcesMonitoring" , func (t * testing.T ) {
3171
3228
t .Parallel ()
3172
3229
db , _ := dbtestutil .NewDB (t )
0 commit comments