@@ -17,6 +17,7 @@ import (
17
17
"github.com/coder/coder/coderd/audit"
18
18
"github.com/coder/coder/coderd/coderdtest"
19
19
"github.com/coder/coder/coderd/database"
20
+ "github.com/coder/coder/coderd/rbac"
20
21
"github.com/coder/coder/codersdk"
21
22
"github.com/coder/coder/provisioner/echo"
22
23
"github.com/coder/coder/provisionersdk/proto"
@@ -1193,9 +1194,13 @@ func TestWorkspaceBuildDebugMode(t *testing.T) {
1193
1194
t .Run ("AsTemplateAuthor" , func (t * testing.T ) {
1194
1195
t .Parallel ()
1195
1196
1196
- client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
1197
- user := coderdtest .CreateFirstUser (t , client )
1198
- version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
1197
+ // Create users
1198
+ adminClient := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
1199
+ admin := coderdtest .CreateFirstUser (t , adminClient )
1200
+ templateAdminClient , _ := coderdtest .CreateAnotherUser (t , adminClient , admin .OrganizationID , rbac .RoleTemplateAdmin ())
1201
+
1202
+ // Interact as template admin
1203
+ version := coderdtest .CreateTemplateVersion (t , templateAdminClient , admin .OrganizationID , & echo.Responses {
1199
1204
Parse : echo .ParseComplete ,
1200
1205
ProvisionPlan : echo .ProvisionComplete ,
1201
1206
ProvisionApply : []* proto.Provision_Response {{
@@ -1225,29 +1230,29 @@ func TestWorkspaceBuildDebugMode(t *testing.T) {
1225
1230
},
1226
1231
}},
1227
1232
})
1228
- template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
1229
- coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
1233
+ template := coderdtest .CreateTemplate (t , templateAdminClient , admin .OrganizationID , version .ID )
1234
+ coderdtest .AwaitTemplateVersionJob (t , templateAdminClient , version .ID )
1230
1235
1231
1236
// Create workspace
1232
- workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
1233
- coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
1237
+ workspace := coderdtest .CreateWorkspace (t , templateAdminClient , admin .OrganizationID , template .ID )
1238
+ coderdtest .AwaitWorkspaceBuildJob (t , templateAdminClient , workspace .LatestBuild .ID )
1234
1239
1235
1240
// Create workspace build
1236
1241
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
1237
1242
defer cancel ()
1238
1243
1239
- build , err := client .CreateWorkspaceBuild (ctx , workspace .ID , codersdk.CreateWorkspaceBuildRequest {
1244
+ build , err := templateAdminClient .CreateWorkspaceBuild (ctx , workspace .ID , codersdk.CreateWorkspaceBuildRequest {
1240
1245
TemplateVersionID : workspace .LatestBuild .TemplateVersionID ,
1241
1246
Transition : codersdk .WorkspaceTransitionStart ,
1242
1247
ProvisionerState : []byte (" " ),
1243
1248
LogLevel : "debug" ,
1244
1249
})
1245
1250
require .Nil (t , err )
1246
1251
1247
- build = coderdtest .AwaitWorkspaceBuildJob (t , client , build .ID )
1252
+ build = coderdtest .AwaitWorkspaceBuildJob (t , templateAdminClient , build .ID )
1248
1253
1249
1254
// Watch for incoming logs
1250
- logs , closer , err := client .WorkspaceBuildLogsAfter (ctx , build .ID , 0 )
1255
+ logs , closer , err := templateAdminClient .WorkspaceBuildLogsAfter (ctx , build .ID , 0 )
1251
1256
require .NoError (t , err )
1252
1257
defer closer .Close ()
1253
1258
0 commit comments