Skip to content

Commit dd8f6c7

Browse files
committed
Improve AdminTerraformVersion test coverage
1 parent da71abb commit dd8f6c7

File tree

1 file changed

+68
-3
lines changed

1 file changed

+68
-3
lines changed

admin_terraform_version_integration_test.go

Lines changed: 68 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ func TestAdminTerraformVersions_CreateDelete(t *testing.T) {
133133
}()
134134

135135
assert.Equal(t, *opts.Version, tfv.Version)
136+
assert.ElementsMatch(t, opts.Archs, tfv.Archs)
136137
assert.Equal(t, *opts.Official, tfv.Official)
137138
assert.Equal(t, *opts.Deprecated, tfv.Deprecated)
138139
assert.Equal(t, *opts.DeprecatedReason, *tfv.DeprecatedReason)
@@ -169,7 +170,7 @@ func TestAdminTerraformVersions_CreateDelete(t *testing.T) {
169170
assert.Equal(t, *opts.Beta, tfv.Beta)
170171
})
171172

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) {
173174
version := genSafeRandomTerraformVersion()
174175
opts := AdminTerraformVersionCreateOptions{
175176
Version: String(version),
@@ -194,6 +195,41 @@ func TestAdminTerraformVersions_CreateDelete(t *testing.T) {
194195
assert.Equal(t, false, tfv.Beta)
195196
})
196197

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+
197233
t.Run("with empty options", func(t *testing.T) {
198234
_, err := client.Admin.TerraformVersions.Create(ctx, AdminTerraformVersionCreateOptions{})
199235
require.Equal(t, err, ErrRequiredTFVerCreateOps)
@@ -238,8 +274,9 @@ func TestAdminTerraformVersions_ReadUpdate(t *testing.T) {
238274
require.NoError(t, err)
239275

240276
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)
243280
assert.Equal(t, *opts.Official, tfv.Official)
244281
assert.Equal(t, *opts.Deprecated, tfv.Deprecated)
245282
assert.Equal(t, *opts.DeprecatedReason, *tfv.DeprecatedReason)
@@ -251,6 +288,7 @@ func TestAdminTerraformVersions_ReadUpdate(t *testing.T) {
251288
updateOpts := AdminTerraformVersionUpdateOptions{
252289
Version: String(updateVersion),
253290
URL: String(updateURL),
291+
Sha: sha,
254292
Deprecated: Bool(false),
255293
}
256294

@@ -261,10 +299,37 @@ func TestAdminTerraformVersions_ReadUpdate(t *testing.T) {
261299
assert.Equal(t, updateVersion, tfv.Version)
262300
assert.Equal(t, updateURL, tfv.URL)
263301
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)
264304
assert.Equal(t, *opts.Official, tfv.Official)
265305
assert.Equal(t, *updateOpts.Deprecated, tfv.Deprecated)
266306
assert.Equal(t, *opts.Enabled, tfv.Enabled)
267307
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)
268333
})
269334

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

0 commit comments

Comments
 (0)