@@ -133,6 +133,7 @@ func TestAdminTerraformVersions_CreateDelete(t *testing.T) {
133
133
}()
134
134
135
135
assert .Equal (t , * opts .Version , tfv .Version )
136
+ assert .ElementsMatch (t , opts .Archs , tfv .Archs )
136
137
assert .Equal (t , * opts .Official , tfv .Official )
137
138
assert .Equal (t , * opts .Deprecated , tfv .Deprecated )
138
139
assert .Equal (t , * opts .DeprecatedReason , * tfv .DeprecatedReason )
@@ -169,7 +170,7 @@ func TestAdminTerraformVersions_CreateDelete(t *testing.T) {
169
170
assert .Equal (t , * opts .Beta , tfv .Beta )
170
171
})
171
172
172
- t .Run ("with only required options" , func (t * testing.T ) {
173
+ t .Run ("with only required options including tool version url and sha " , func (t * testing.T ) {
173
174
version := genSafeRandomTerraformVersion ()
174
175
opts := AdminTerraformVersionCreateOptions {
175
176
Version : String (version ),
@@ -194,6 +195,41 @@ func TestAdminTerraformVersions_CreateDelete(t *testing.T) {
194
195
assert .Equal (t , false , tfv .Beta )
195
196
})
196
197
198
+ t .Run ("with only required options including archs" , func (t * testing.T ) {
199
+ version := genSafeRandomTerraformVersion ()
200
+ opts := AdminTerraformVersionCreateOptions {
201
+ Version : String (version ),
202
+ Archs : []* ToolVersionArchitecture {
203
+ {
204
+ URL : "https://www.hashicorp.com" ,
205
+ Sha : * String (genSha (t )),
206
+ OS : linux ,
207
+ Arch : amd64 ,
208
+ },
209
+ {
210
+ URL : "https://www.hashicorp.com" ,
211
+ Sha : * String (genSha (t )),
212
+ OS : linux ,
213
+ Arch : arm64 ,
214
+ }},
215
+ }
216
+ tfv , err := client .Admin .TerraformVersions .Create (ctx , opts )
217
+ require .NoError (t , err )
218
+
219
+ defer func () {
220
+ deleteErr := client .Admin .TerraformVersions .Delete (ctx , tfv .ID )
221
+ require .NoError (t , deleteErr )
222
+ }()
223
+
224
+ assert .Equal (t , * opts .Version , tfv .Version )
225
+ assert .ElementsMatch (t , opts .Archs , tfv .Archs )
226
+ assert .Equal (t , false , tfv .Official )
227
+ assert .Equal (t , false , tfv .Deprecated )
228
+ assert .Nil (t , tfv .DeprecatedReason )
229
+ assert .Equal (t , true , tfv .Enabled )
230
+ assert .Equal (t , false , tfv .Beta )
231
+ })
232
+
197
233
t .Run ("with empty options" , func (t * testing.T ) {
198
234
_ , err := client .Admin .TerraformVersions .Create (ctx , AdminTerraformVersionCreateOptions {})
199
235
require .Equal (t , err , ErrRequiredTFVerCreateOps )
@@ -238,8 +274,9 @@ func TestAdminTerraformVersions_ReadUpdate(t *testing.T) {
238
274
require .NoError (t , err )
239
275
240
276
assert .Equal (t , * opts .Version , tfv .Version )
241
- assert .Equal (t , * opts .URL , tfv .URL )
242
- assert .Equal (t , * opts .Sha , tfv .Sha )
277
+ assert .Equal (t , opts .Archs [0 ].URL , tfv .URL )
278
+ assert .Equal (t , opts .Archs [0 ].Sha , tfv .Sha )
279
+ assert .ElementsMatch (t , opts .Archs , tfv .Archs )
243
280
assert .Equal (t , * opts .Official , tfv .Official )
244
281
assert .Equal (t , * opts .Deprecated , tfv .Deprecated )
245
282
assert .Equal (t , * opts .DeprecatedReason , * tfv .DeprecatedReason )
@@ -251,6 +288,7 @@ func TestAdminTerraformVersions_ReadUpdate(t *testing.T) {
251
288
updateOpts := AdminTerraformVersionUpdateOptions {
252
289
Version : String (updateVersion ),
253
290
URL : String (updateURL ),
291
+ Sha : sha ,
254
292
Deprecated : Bool (false ),
255
293
}
256
294
@@ -261,10 +299,37 @@ func TestAdminTerraformVersions_ReadUpdate(t *testing.T) {
261
299
assert .Equal (t , updateVersion , tfv .Version )
262
300
assert .Equal (t , updateURL , tfv .URL )
263
301
assert .Equal (t , * opts .Sha , tfv .Sha )
302
+ assert .Equal (t , updateURL , tfv .Archs [0 ].URL )
303
+ assert .Equal (t , * opts .Sha , tfv .Archs [0 ].Sha )
264
304
assert .Equal (t , * opts .Official , tfv .Official )
265
305
assert .Equal (t , * updateOpts .Deprecated , tfv .Deprecated )
266
306
assert .Equal (t , * opts .Enabled , tfv .Enabled )
267
307
assert .Equal (t , * opts .Beta , tfv .Beta )
308
+
309
+ updateOpts = AdminTerraformVersionUpdateOptions {
310
+ Archs : []* ToolVersionArchitecture {
311
+ {
312
+ URL : "https://www.hashicorp.com/update" ,
313
+ Sha : * sha ,
314
+ OS : linux ,
315
+ Arch : amd64 ,
316
+ },
317
+ {
318
+ URL : "https://www.hashicorp.com/update/arm64" ,
319
+ Sha : * sha ,
320
+ OS : linux ,
321
+ Arch : arm64 ,
322
+ },
323
+ },
324
+ }
325
+
326
+ tfv , err = client .Admin .TerraformVersions .Update (ctx , id , updateOpts )
327
+
328
+ require .NoError (t , err )
329
+
330
+ assert .Equal (t , "https://www.hashicorp.com/update" , tfv .URL )
331
+ assert .Equal (t , * opts .Sha , tfv .Sha )
332
+ assert .ElementsMatch (t , updateOpts .Archs , tfv .Archs )
268
333
})
269
334
270
335
t .Run ("with non-existent terraform version" , func (t * testing.T ) {
0 commit comments