@@ -61,6 +61,7 @@ func TestAdminSentinelVersions_List(t *testing.T) {
61
61
assert .NotNil (t , item .Beta )
62
62
assert .NotNil (t , item .Usage )
63
63
assert .NotNil (t , item .CreatedAt )
64
+ assert .NotNil (t , item .Archs )
64
65
}
65
66
})
66
67
@@ -138,6 +139,13 @@ func TestAdminSentinelVersions_CreateDelete(t *testing.T) {
138
139
assert .Equal (t , * opts .DeprecatedReason , * sv .DeprecatedReason )
139
140
assert .Equal (t , * opts .Enabled , sv .Enabled )
140
141
assert .Equal (t , * opts .Beta , sv .Beta )
142
+ assert .Equal (t , len (opts .Archs ), len (sv .Archs ))
143
+ for i , arch := range opts .Archs {
144
+ assert .Equal (t , arch .URL , sv .Archs [i ].URL )
145
+ assert .Equal (t , arch .Sha , sv .Archs [i ].Sha )
146
+ assert .Equal (t , arch .OS , sv .Archs [i ].OS )
147
+ assert .Equal (t , arch .Arch , sv .Archs [i ].Arch )
148
+ }
141
149
})
142
150
143
151
t .Run ("with valid options including url, and sha" , func (t * testing.T ) {
@@ -167,6 +175,11 @@ func TestAdminSentinelVersions_CreateDelete(t *testing.T) {
167
175
assert .Equal (t , * opts .DeprecatedReason , * sv .DeprecatedReason )
168
176
assert .Equal (t , * opts .Enabled , sv .Enabled )
169
177
assert .Equal (t , * opts .Beta , sv .Beta )
178
+ assert .Equal (t , 1 , len (sv .Archs ))
179
+ assert .Equal (t , opts .URL , sv .Archs [0 ].URL )
180
+ assert .Equal (t , opts .SHA , sv .Archs [0 ].Sha )
181
+ assert .Equal (t , linux , sv .Archs [0 ].OS )
182
+ assert .Equal (t , amd64 , sv .Archs [0 ].Arch )
170
183
})
171
184
172
185
t .Run ("with only required options including tool version url and sha" , func (t * testing.T ) {
@@ -192,6 +205,13 @@ func TestAdminSentinelVersions_CreateDelete(t *testing.T) {
192
205
assert .Nil (t , sv .DeprecatedReason )
193
206
assert .Equal (t , true , sv .Enabled )
194
207
assert .Equal (t , false , sv .Beta )
208
+ assert .Equal (t , 1 , len (sv .Archs ))
209
+ for i , arch := range opts .Archs {
210
+ assert .Equal (t , arch .URL , sv .Archs [i ].URL )
211
+ assert .Equal (t , arch .Sha , sv .Archs [i ].Sha )
212
+ assert .Equal (t , arch .OS , sv .Archs [i ].OS )
213
+ assert .Equal (t , arch .Arch , sv .Archs [i ].Arch )
214
+ }
195
215
})
196
216
197
217
t .Run ("with only required options including archs" , func (t * testing.T ) {
@@ -226,6 +246,13 @@ func TestAdminSentinelVersions_CreateDelete(t *testing.T) {
226
246
assert .Nil (t , sv .DeprecatedReason )
227
247
assert .Equal (t , true , sv .Enabled )
228
248
assert .Equal (t , false , sv .Beta )
249
+ assert .Equal (t , len (opts .Archs ), len (sv .Archs ))
250
+ for i , arch := range opts .Archs {
251
+ assert .Equal (t , arch .URL , sv .Archs [i ].URL )
252
+ assert .Equal (t , arch .Sha , sv .Archs [i ].Sha )
253
+ assert .Equal (t , arch .OS , sv .Archs [i ].OS )
254
+ assert .Equal (t , arch .Arch , sv .Archs [i ].Arch )
255
+ }
229
256
})
230
257
231
258
t .Run ("with empty options" , func (t * testing.T ) {
@@ -279,6 +306,13 @@ func TestAdminSentinelVersions_ReadUpdate(t *testing.T) {
279
306
assert .Equal (t , * opts .DeprecatedReason , * sv .DeprecatedReason )
280
307
assert .Equal (t , * opts .Enabled , sv .Enabled )
281
308
assert .Equal (t , * opts .Beta , sv .Beta )
309
+ assert .Equal (t , len (opts .Archs ), len (sv .Archs ))
310
+ for i , arch := range opts .Archs {
311
+ assert .Equal (t , arch .URL , sv .Archs [i ].URL )
312
+ assert .Equal (t , arch .Sha , sv .Archs [i ].Sha )
313
+ assert .Equal (t , arch .OS , sv .Archs [i ].OS )
314
+ assert .Equal (t , arch .Arch , sv .Archs [i ].Arch )
315
+ }
282
316
283
317
updateVersion := createAdminSentinelVersion ()
284
318
updateURL := "https://app.terraform.io/"
@@ -298,6 +332,65 @@ func TestAdminSentinelVersions_ReadUpdate(t *testing.T) {
298
332
assert .Equal (t , * updateOpts .Deprecated , sv .Deprecated )
299
333
assert .Equal (t , * opts .Enabled , sv .Enabled )
300
334
assert .Equal (t , * opts .Beta , sv .Beta )
335
+ assert .Equal (t , len (opts .Archs ), len (sv .Archs ))
336
+ assert .Equal (t , updateURL , sv .Archs [0 ].URL )
337
+ assert .Equal (t , opts .SHA , sv .Archs [0 ].Sha )
338
+ assert .Equal (t , opts .Archs [0 ].OS , sv .Archs [0 ].OS )
339
+ assert .Equal (t , opts .Archs [0 ].Arch , sv .Archs [0 ].Arch )
340
+ })
341
+
342
+ t .Run ("update with Archs" , func (t * testing.T ) {
343
+ version := createAdminSentinelVersion ()
344
+ sha := String (genSha (t ))
345
+ opts := AdminSentinelVersionCreateOptions {
346
+ Version : * String (version ),
347
+ URL : * String ("https://www.hashicorp.com" ),
348
+ SHA : * String (genSha (t )),
349
+ Official : Bool (false ),
350
+ Deprecated : Bool (true ),
351
+ DeprecatedReason : String ("Test Reason" ),
352
+ Enabled : Bool (false ),
353
+ Beta : Bool (false ),
354
+ Archs : []* ToolVersionArchitecture {{
355
+ URL : "https://www.hashicorp.com" ,
356
+ Sha : * sha ,
357
+ OS : linux ,
358
+ Arch : amd64 ,
359
+ }},
360
+ }
361
+ sv , err := client .Admin .SentinelVersions .Create (ctx , opts )
362
+ require .NoError (t , err )
363
+ id := sv .ID
364
+
365
+ defer func () {
366
+ deleteErr := client .Admin .SentinelVersions .Delete (ctx , id )
367
+ require .NoError (t , deleteErr )
368
+ }()
369
+
370
+ updateArchOpts := AdminSentinelVersionUpdateOptions {
371
+ Archs : []* ToolVersionArchitecture {{
372
+ URL : "https://www.hashicorp.com" ,
373
+ Sha : * sha ,
374
+ OS : linux ,
375
+ Arch : arm64 ,
376
+ }},
377
+ }
378
+
379
+ sv , err = client .Admin .SentinelVersions .Update (ctx , id , updateArchOpts )
380
+ require .NoError (t , err )
381
+
382
+ assert .Equal (t , opts .Version , sv .Version )
383
+ assert .Equal (t , "" , sv .URL )
384
+ assert .Equal (t , "" , sv .SHA )
385
+ assert .Equal (t , * opts .Official , sv .Official )
386
+ assert .Equal (t , * opts .Deprecated , sv .Deprecated )
387
+ assert .Equal (t , * opts .Enabled , sv .Enabled )
388
+ assert .Equal (t , * opts .Beta , sv .Beta )
389
+ assert .Equal (t , len (sv .Archs ), 1 )
390
+ assert .Equal (t , updateArchOpts .Archs [0 ].URL , sv .Archs [0 ].URL )
391
+ assert .Equal (t , updateArchOpts .Archs [0 ].Sha , sv .Archs [0 ].Sha )
392
+ assert .Equal (t , updateArchOpts .Archs [0 ].OS , sv .Archs [0 ].OS )
393
+ assert .Equal (t , updateArchOpts .Archs [0 ].Arch , sv .Archs [0 ].Arch )
301
394
})
302
395
303
396
t .Run ("with non-existent Sentinel version" , func (t * testing.T ) {
0 commit comments