@@ -166,15 +166,13 @@ func TestTeamProjectAccessesAdd(t *testing.T) {
166
166
})
167
167
168
168
t .Run ("with valid options for all custom TeamProject permissions" , func (t * testing.T ) {
169
- skipUnlessBeta (t )
170
169
options := TeamProjectAccessAddOptions {
171
170
Access : * ProjectAccess (TeamProjectAccessCustom ),
172
171
Team : tmTest ,
173
172
Project : pTest ,
174
173
ProjectAccess : & TeamProjectAccessProjectPermissionsOptions {
175
- Settings : ProjectSettingsPermission (ProjectSettingsPermissionUpdate ),
176
- Teams : ProjectTeamsPermission (ProjectTeamsPermissionManage ),
177
- VariableSets : ProjectVariableSetsPermission (ProjectVariableSetsPermissionWrite ),
174
+ Settings : ProjectSettingsPermission (ProjectSettingsPermissionUpdate ),
175
+ Teams : ProjectTeamsPermission (ProjectTeamsPermissionManage ),
178
176
},
179
177
WorkspaceAccess : & TeamProjectAccessWorkspacePermissionsOptions {
180
178
Runs : WorkspaceRunsPermission (WorkspaceRunsPermissionApply ),
@@ -211,7 +209,6 @@ func TestTeamProjectAccessesAdd(t *testing.T) {
211
209
assert .Equal (t , options .Access , item .Access )
212
210
assert .Equal (t , * options .ProjectAccess .Settings , item .ProjectAccess .ProjectSettingsPermission )
213
211
assert .Equal (t , * options .ProjectAccess .Teams , item .ProjectAccess .ProjectTeamsPermission )
214
- assert .Equal (t , * options .ProjectAccess .VariableSets , item .ProjectAccess .ProjectVariableSetsPermission )
215
212
assert .Equal (t , * options .WorkspaceAccess .Runs , item .WorkspaceAccess .WorkspaceRunsPermission )
216
213
assert .Equal (t , * options .WorkspaceAccess .SentinelMocks , item .WorkspaceAccess .WorkspaceSentinelMocksPermission )
217
214
assert .Equal (t , * options .WorkspaceAccess .StateVersions , item .WorkspaceAccess .WorkspaceStateVersionsPermission )
@@ -224,6 +221,45 @@ func TestTeamProjectAccessesAdd(t *testing.T) {
224
221
}
225
222
})
226
223
224
+ t .Run ("with valid options for custom variable sets permissions" , func (t * testing.T ) {
225
+ skipUnlessBeta (t )
226
+ options := TeamProjectAccessAddOptions {
227
+ Access : * ProjectAccess (TeamProjectAccessCustom ),
228
+ Team : tmTest ,
229
+ Project : pTest ,
230
+ ProjectAccess : & TeamProjectAccessProjectPermissionsOptions {
231
+ VariableSets : ProjectVariableSetsPermission (ProjectVariableSetsPermissionWrite ),
232
+ },
233
+ WorkspaceAccess : & TeamProjectAccessWorkspacePermissionsOptions {
234
+ Runs : WorkspaceRunsPermission (WorkspaceRunsPermissionApply ),
235
+ },
236
+ }
237
+
238
+ tpa , err := client .TeamProjectAccess .Add (ctx , options )
239
+ t .Cleanup (func () {
240
+ err := client .TeamProjectAccess .Remove (ctx , tpa .ID )
241
+ if err != nil {
242
+ t .Logf ("error removing team access (%s): %s" , tpa .ID , err )
243
+ }
244
+ })
245
+
246
+ require .NoError (t , err )
247
+
248
+ // Get a refreshed view from the API.
249
+ refreshed , err := client .TeamProjectAccess .Read (ctx , tpa .ID )
250
+ require .NoError (t , err )
251
+
252
+ for _ , item := range []* TeamProjectAccess {
253
+ tpa ,
254
+ refreshed ,
255
+ } {
256
+ assert .NotEmpty (t , item .ID )
257
+ assert .Equal (t , options .Access , item .Access )
258
+ assert .Equal (t , * options .ProjectAccess .VariableSets , item .ProjectAccess .ProjectVariableSetsPermission )
259
+ assert .Equal (t , * options .WorkspaceAccess .Runs , item .WorkspaceAccess .WorkspaceRunsPermission )
260
+ }
261
+ })
262
+
227
263
t .Run ("with valid options for some custom TeamProject permissions" , func (t * testing.T ) {
228
264
options := TeamProjectAccessAddOptions {
229
265
Access : * ProjectAccess (TeamProjectAccessCustom ),
@@ -355,13 +391,11 @@ func TestTeamProjectAccessesUpdate(t *testing.T) {
355
391
})
356
392
357
393
t .Run ("with valid custom permissions attributes for all permissions" , func (t * testing.T ) {
358
- skipUnlessBeta (t )
359
394
options := TeamProjectAccessUpdateOptions {
360
395
Access : ProjectAccess (TeamProjectAccessCustom ),
361
396
ProjectAccess : & TeamProjectAccessProjectPermissionsOptions {
362
- Settings : ProjectSettingsPermission (ProjectSettingsPermissionUpdate ),
363
- Teams : ProjectTeamsPermission (ProjectTeamsPermissionManage ),
364
- VariableSets : ProjectVariableSetsPermission (ProjectVariableSetsPermissionRead ),
397
+ Settings : ProjectSettingsPermission (ProjectSettingsPermissionUpdate ),
398
+ Teams : ProjectTeamsPermission (ProjectTeamsPermissionManage ),
365
399
},
366
400
WorkspaceAccess : & TeamProjectAccessWorkspacePermissionsOptions {
367
401
Runs : WorkspaceRunsPermission (WorkspaceRunsPermissionPlan ),
@@ -383,7 +417,6 @@ func TestTeamProjectAccessesUpdate(t *testing.T) {
383
417
assert .Equal (t , tpa .Access , TeamProjectAccessCustom )
384
418
assert .Equal (t , * options .ProjectAccess .Teams , tpa .ProjectAccess .ProjectTeamsPermission )
385
419
assert .Equal (t , * options .ProjectAccess .Settings , tpa .ProjectAccess .ProjectSettingsPermission )
386
- assert .Equal (t , * options .ProjectAccess .VariableSets , tpa .ProjectAccess .ProjectVariableSetsPermission )
387
420
assert .Equal (t , * options .WorkspaceAccess .Runs , tpa .WorkspaceAccess .WorkspaceRunsPermission )
388
421
assert .Equal (t , * options .WorkspaceAccess .SentinelMocks , tpa .WorkspaceAccess .WorkspaceSentinelMocksPermission )
389
422
assert .Equal (t , * options .WorkspaceAccess .StateVersions , tpa .WorkspaceAccess .WorkspaceStateVersionsPermission )
@@ -395,6 +428,48 @@ func TestTeamProjectAccessesUpdate(t *testing.T) {
395
428
assert .Equal (t , true , tpa .WorkspaceAccess .WorkspaceRunTasksPermission )
396
429
})
397
430
431
+ t .Run ("with valid custom permissions attributes for variable sets permissions" , func (t * testing.T ) {
432
+ skipUnlessBeta (t )
433
+ // create tpaCustomTest to verify unupdated attributes stay the same for custom permissions
434
+ // because going from admin to read to custom changes the values of all custom permissions
435
+ tm2Test , tm2TestCleanup := createTeam (t , client , orgTest )
436
+ defer tm2TestCleanup ()
437
+
438
+ TpaOptions := TeamProjectAccessAddOptions {
439
+ Access : * ProjectAccess (TeamProjectAccessCustom ),
440
+ Team : tm2Test ,
441
+ Project : pTest ,
442
+ }
443
+
444
+ tpaCustomTest , err := client .TeamProjectAccess .Add (ctx , TpaOptions )
445
+ require .NoError (t , err )
446
+
447
+ options := TeamProjectAccessUpdateOptions {
448
+ Access : ProjectAccess (TeamProjectAccessCustom ),
449
+ ProjectAccess : & TeamProjectAccessProjectPermissionsOptions {
450
+ VariableSets : ProjectVariableSetsPermission (ProjectVariableSetsPermissionRead ),
451
+ },
452
+ WorkspaceAccess : & TeamProjectAccessWorkspacePermissionsOptions {
453
+ Create : Bool (false ),
454
+ },
455
+ }
456
+
457
+ tpa , err := client .TeamProjectAccess .Update (ctx , tpaCustomTest .ID , options )
458
+ require .NoError (t , err )
459
+ require .NotNil (t , options .ProjectAccess )
460
+ require .NotNil (t , options .WorkspaceAccess )
461
+ assert .Equal (t , * options .ProjectAccess .VariableSets , tpa .ProjectAccess .ProjectVariableSetsPermission )
462
+ assert .Equal (t , false , tpa .WorkspaceAccess .WorkspaceCreatePermission )
463
+ // assert that other attributes remain the same
464
+ assert .Equal (t , tpaCustomTest .ProjectAccess .ProjectSettingsPermission , tpa .ProjectAccess .ProjectSettingsPermission )
465
+ assert .Equal (t , tpaCustomTest .WorkspaceAccess .WorkspaceLockingPermission , tpa .WorkspaceAccess .WorkspaceLockingPermission )
466
+ assert .Equal (t , tpaCustomTest .WorkspaceAccess .WorkspaceMovePermission , tpa .WorkspaceAccess .WorkspaceMovePermission )
467
+ assert .Equal (t , tpaCustomTest .WorkspaceAccess .WorkspaceDeletePermission , tpa .WorkspaceAccess .WorkspaceDeletePermission )
468
+ assert .Equal (t , tpaCustomTest .WorkspaceAccess .WorkspaceRunsPermission , tpa .WorkspaceAccess .WorkspaceRunsPermission )
469
+ assert .Equal (t , tpaCustomTest .WorkspaceAccess .WorkspaceSentinelMocksPermission , tpa .WorkspaceAccess .WorkspaceSentinelMocksPermission )
470
+ assert .Equal (t , tpaCustomTest .WorkspaceAccess .WorkspaceStateVersionsPermission , tpa .WorkspaceAccess .WorkspaceStateVersionsPermission )
471
+ })
472
+
398
473
t .Run ("with valid custom permissions attributes for some permissions" , func (t * testing.T ) {
399
474
// create tpaCustomTest to verify unupdated attributes stay the same for custom permissions
400
475
// because going from admin to read to custom changes the values of all custom permissions
@@ -435,6 +510,7 @@ func TestTeamProjectAccessesUpdate(t *testing.T) {
435
510
assert .Equal (t , tpaCustomTest .WorkspaceAccess .WorkspaceSentinelMocksPermission , tpa .WorkspaceAccess .WorkspaceSentinelMocksPermission )
436
511
assert .Equal (t , tpaCustomTest .WorkspaceAccess .WorkspaceStateVersionsPermission , tpa .WorkspaceAccess .WorkspaceStateVersionsPermission )
437
512
})
513
+
438
514
t .Run ("with invalid custom permissions attributes" , func (t * testing.T ) {
439
515
options := TeamProjectAccessUpdateOptions {
440
516
Access : ProjectAccess (TeamProjectAccessCustom ),
0 commit comments