Skip to content

Commit c57186d

Browse files
Kelsi HoyleKelsi Hoyle
authored andcommitted
add archs to response, update tests to confirm archs
1 parent f432406 commit c57186d

File tree

2 files changed

+48
-12
lines changed

2 files changed

+48
-12
lines changed

admin_terraform_version.go

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,25 @@ type adminTerraformVersions struct {
4949

5050
// AdminTerraformVersion represents a Terraform Version
5151
type AdminTerraformVersion struct {
52-
ID string `jsonapi:"primary,terraform-versions"`
53-
Version string `jsonapi:"attr,version"`
54-
URL string `jsonapi:"attr,url"`
55-
Sha string `jsonapi:"attr,sha"`
56-
Deprecated bool `jsonapi:"attr,deprecated"`
57-
DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"`
58-
Official bool `jsonapi:"attr,official"`
59-
Enabled bool `jsonapi:"attr,enabled"`
60-
Beta bool `jsonapi:"attr,beta"`
61-
Usage int `jsonapi:"attr,usage"`
62-
CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"`
52+
ID string `jsonapi:"primary,terraform-versions"`
53+
Version string `jsonapi:"attr,version"`
54+
URL string `jsonapi:"attr,url"`
55+
Sha string `jsonapi:"attr,sha"`
56+
Deprecated bool `jsonapi:"attr,deprecated"`
57+
DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"`
58+
Official bool `jsonapi:"attr,official"`
59+
Enabled bool `jsonapi:"attr,enabled"`
60+
Beta bool `jsonapi:"attr,beta"`
61+
Usage int `jsonapi:"attr,usage"`
62+
CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"`
63+
Archs []*ToolVersionArchitecture `jsonapi:"attr,archs,omitempty"`
64+
}
65+
66+
type ToolVersionArchitecture struct {
67+
URL string `jsonapi:"attr,url"`
68+
Sha string `jsonapi:"attr,sha"`
69+
OS string `jsonapi:"attr,os"`
70+
Arch string `jsonapi:"attr,arch"`
6371
}
6472

6573
type ToolVersionArchitectureOptions struct {

admin_terraform_version_integration_test.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,13 @@ func TestAdminTerraformVersions_CreateDelete(t *testing.T) {
137137
assert.Equal(t, *opts.DeprecatedReason, *tfv.DeprecatedReason)
138138
assert.Equal(t, *opts.Enabled, tfv.Enabled)
139139
assert.Equal(t, *opts.Beta, tfv.Beta)
140+
assert.Equal(t, len(opts.Archs), len(tfv.Archs))
141+
for i, arch := range opts.Archs {
142+
assert.Equal(t, arch.URL, tfv.Archs[i].URL)
143+
assert.Equal(t, arch.Sha, tfv.Archs[i].Sha)
144+
assert.Equal(t, arch.OS, tfv.Archs[i].OS)
145+
assert.Equal(t, arch.Arch, tfv.Archs[i].Arch)
146+
}
140147
})
141148

142149
t.Run("with valid options, url, and sha", func(t *testing.T) {
@@ -200,7 +207,7 @@ func TestAdminTerraformVersions_CreateDelete(t *testing.T) {
200207
}
201208

202209
func TestAdminTerraformVersions_ReadUpdate(t *testing.T) {
203-
skipUnlessEnterprise(t)
210+
// skipUnlessEnterprise(t)
204211

205212
client := testClient(t)
206213
ctx := context.Background()
@@ -263,6 +270,27 @@ func TestAdminTerraformVersions_ReadUpdate(t *testing.T) {
263270
assert.Equal(t, *updateOpts.Deprecated, tfv.Deprecated)
264271
assert.Equal(t, *opts.Enabled, tfv.Enabled)
265272
assert.Equal(t, *opts.Beta, tfv.Beta)
273+
274+
// Update using Archs
275+
updateArchOpts := AdminTerraformVersionUpdateOptions{
276+
Version: String(updateVersion),
277+
URL: String(updateURL),
278+
Archs: []*ToolVersionArchitectureOptions{{
279+
URL: "https://www.hashicorp.com",
280+
Sha: *sha,
281+
OS: linux,
282+
Arch: amd64,
283+
}},
284+
}
285+
286+
tfv, err = client.Admin.TerraformVersions.Update(ctx, id, updateArchOpts)
287+
require.NoError(t, err)
288+
289+
assert.Equal(t, len(tfv.Archs), 1)
290+
assert.Equal(t, updateArchOpts.Archs[0].URL, tfv.Archs[0].URL)
291+
assert.Equal(t, updateArchOpts.Archs[0].Sha, tfv.Archs[0].Sha)
292+
assert.Equal(t, updateArchOpts.Archs[0].OS, tfv.Archs[0].OS)
293+
assert.Equal(t, updateArchOpts.Archs[0].Arch, tfv.Archs[0].Arch)
266294
})
267295

268296
t.Run("with non-existent terraform version", func(t *testing.T) {

0 commit comments

Comments
 (0)