Skip to content

Commit fd4836d

Browse files
committed
ermutation tests
1 parent 6b72097 commit fd4836d

File tree

3 files changed

+270
-0
lines changed

3 files changed

+270
-0
lines changed

tests/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ go 1.24.0
55
toolchain go1.25.3
66

77
require (
8+
github.com/IBM/go-sdk-core v1.1.0
89
github.com/gruntwork-io/terratest v0.51.0
910
github.com/stretchr/testify v1.11.1
1011
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.60.15
@@ -29,6 +30,7 @@ require (
2930
github.com/cloudflare/circl v1.6.1 // indirect
3031
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
3132
github.com/davecgh/go-spew v1.1.1 // indirect
33+
github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
3234
github.com/emirpasic/gods v1.18.1 // indirect
3335
github.com/gabriel-vasile/mimetype v1.4.9 // indirect
3436
github.com/ghodss/yaml v1.0.0 // indirect
@@ -98,6 +100,7 @@ require (
98100
golang.org/x/sys v0.37.0 // indirect
99101
golang.org/x/text v0.30.0 // indirect
100102
golang.org/x/tools v0.37.0 // indirect
103+
gopkg.in/go-playground/validator.v9 v9.31.0 // indirect
101104
gopkg.in/warnings.v0 v0.1.2 // indirect
102105
gopkg.in/yaml.v2 v2.4.0 // indirect
103106
gopkg.in/yaml.v3 v3.0.1 // indirect

tests/go.sum

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ github.com/IBM-Cloud/power-go-client v1.13.0 h1:TqxPlkJe0VkNdV9hYOD5NRepxEFhhyKX
66
github.com/IBM-Cloud/power-go-client v1.13.0/go.mod h1:SpTK1ttW8bfMNUVQS8qOEuWn2KOkzaCLyzfze8MG1JE=
77
github.com/IBM/cloud-databases-go-sdk v0.8.1 h1:ULQ5L8V/9z79/qS185LqbIK2LD4kMtk3Hdhp4lFMVcw=
88
github.com/IBM/cloud-databases-go-sdk v0.8.1/go.mod h1:JYucI1PdwqbAd8XGdDAchxzxRP7bxOh1zUnseovHKsc=
9+
github.com/IBM/go-sdk-core v1.1.0 h1:pV73lZqr9r1xKb3h08c1uNG3AphwoV5KzUzhS+pfEqY=
10+
github.com/IBM/go-sdk-core v1.1.0/go.mod h1:2pcx9YWsIsZ3I7kH+1amiAkXvLTZtAq9kbxsfXilSoY=
911
github.com/IBM/go-sdk-core/v5 v5.9.2/go.mod h1:YlOwV9LeuclmT/qi/LAK2AsobbAP42veV0j68/rlZsE=
1012
github.com/IBM/go-sdk-core/v5 v5.21.0 h1:DUnYhvC4SoC8T84rx5omnhY3+xcQg/Whyoa3mDPIMkk=
1113
github.com/IBM/go-sdk-core/v5 v5.21.0/go.mod h1:Q3BYO6iDA2zweQPDGbNTtqft5tDcEpm6RTuqMlPcvbw=
@@ -48,6 +50,8 @@ github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGL
4850
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4951
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
5052
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
53+
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
54+
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
5155
github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o=
5256
github.com/elazarl/goproxy v1.7.2/go.mod h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE=
5357
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
@@ -106,9 +110,11 @@ github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3Bum
106110
github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ=
107111
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
108112
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
113+
github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM=
109114
github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
110115
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
111116
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
117+
github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY=
112118
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
113119
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
114120
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
@@ -195,6 +201,7 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
195201
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
196202
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
197203
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
204+
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
198205
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
199206
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
200207
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
@@ -512,7 +519,10 @@ gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8
512519
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
513520
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
514521
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
522+
gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM=
515523
gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
524+
gopkg.in/go-playground/validator.v9 v9.30.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
525+
gopkg.in/go-playground/validator.v9 v9.31.0 h1:bmXmP2RSNtFES+bn4uYuHT7iJFJv7Vj+an+ZQdDaD1M=
516526
gopkg.in/go-playground/validator.v9 v9.31.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
517527
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
518528
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=

tests/other_test.go

Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@ package test
44
import (
55
"testing"
66

7+
"github.com/IBM/go-sdk-core/core"
78
"github.com/gruntwork-io/terratest/modules/terraform"
89
"github.com/stretchr/testify/assert"
10+
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/cloudinfo"
11+
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testaddons"
912
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testhelper"
1013
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testschematic"
1114
)
@@ -192,3 +195,257 @@ func TestFSCloudInSchematic(t *testing.T) {
192195
err := options.RunSchematicTest()
193196
assert.Nil(t, err, "This should not have errored")
194197
}
198+
199+
func TestAddonPermutations(t *testing.T) {
200+
201+
testCases := []testaddons.AddonTestCase{
202+
{
203+
Name: "no-addons",
204+
Prefix: "no-addons",
205+
Dependencies: []cloudinfo.AddonConfig{
206+
{
207+
OfferingName: "deploy-arch-ibm-slz-vpc",
208+
OfferingFlavor: "fully-configurable",
209+
Enabled: core.BoolPtr(false),
210+
},
211+
{
212+
OfferingName: "deploy-arch-ibm-account-infra-base",
213+
OfferingFlavor: "resource-group-only",
214+
Enabled: core.BoolPtr(false),
215+
},
216+
{
217+
OfferingName: "deploy-arch-ibm-kms",
218+
OfferingFlavor: "fully-configurable",
219+
Enabled: core.BoolPtr(false),
220+
},
221+
{
222+
OfferingName: "deploy-arch-ibm-cos",
223+
OfferingFlavor: "instance",
224+
Enabled: core.BoolPtr(false),
225+
},
226+
{
227+
OfferingName: "deploy-arch-ibm-cloud-logs",
228+
OfferingFlavor: "fully-configurable",
229+
Enabled: core.BoolPtr(false),
230+
},
231+
{
232+
OfferingName: "deploy-arch-ibm-cloud-monitoring",
233+
OfferingFlavor: "fully-configurable",
234+
Enabled: core.BoolPtr(false),
235+
},
236+
{
237+
OfferingName: "deploy-arch-ibm-activity-tracker",
238+
OfferingFlavor: "fully-configurable",
239+
Enabled: core.BoolPtr(false),
240+
},
241+
{
242+
OfferingName: "deploy-arch-ibm-secrets-manager",
243+
OfferingFlavor: "fully-configurable",
244+
Enabled: core.BoolPtr(false),
245+
},
246+
{
247+
OfferingName: "deploy-arch-ibm-scc-workload-protection",
248+
OfferingFlavor: "fully-configurable",
249+
Enabled: core.BoolPtr(false),
250+
},
251+
},
252+
},
253+
{
254+
Name: "all-addons",
255+
Prefix: "all-addons",
256+
Dependencies: []cloudinfo.AddonConfig{
257+
{
258+
OfferingName: "deploy-arch-ibm-slz-vpc",
259+
OfferingFlavor: "fully-configurable",
260+
Enabled: core.BoolPtr(true),
261+
},
262+
{
263+
OfferingName: "deploy-arch-ibm-account-infra-base",
264+
OfferingFlavor: "resource-group-only",
265+
Enabled: core.BoolPtr(true),
266+
},
267+
{
268+
OfferingName: "deploy-arch-ibm-kms",
269+
OfferingFlavor: "fully-configurable",
270+
Enabled: core.BoolPtr(true),
271+
},
272+
{
273+
OfferingName: "deploy-arch-ibm-cos",
274+
OfferingFlavor: "instance",
275+
Enabled: core.BoolPtr(true),
276+
},
277+
{
278+
OfferingName: "deploy-arch-ibm-cloud-logs",
279+
OfferingFlavor: "fully-configurable",
280+
Enabled: core.BoolPtr(true),
281+
},
282+
{
283+
OfferingName: "deploy-arch-ibm-cloud-monitoring",
284+
OfferingFlavor: "fully-configurable",
285+
Enabled: core.BoolPtr(true),
286+
},
287+
{
288+
OfferingName: "deploy-arch-ibm-activity-tracker",
289+
OfferingFlavor: "fully-configurable",
290+
Enabled: core.BoolPtr(true),
291+
},
292+
{
293+
OfferingName: "deploy-arch-ibm-secrets-manager",
294+
OfferingFlavor: "fully-configurable",
295+
Enabled: core.BoolPtr(true),
296+
},
297+
{
298+
OfferingName: "deploy-arch-ibm-scc-workload-protection",
299+
OfferingFlavor: "fully-configurable",
300+
Enabled: core.BoolPtr(true),
301+
},
302+
},
303+
},
304+
{
305+
Name: "scc-with-appconfig-disabled",
306+
Prefix: "scc-no-app",
307+
Dependencies: []cloudinfo.AddonConfig{
308+
{
309+
OfferingName: "deploy-arch-ibm-slz-vpc",
310+
OfferingFlavor: "fully-configurable",
311+
Enabled: core.BoolPtr(false),
312+
},
313+
{
314+
OfferingName: "deploy-arch-ibm-account-infra-base",
315+
OfferingFlavor: "resource-group-only",
316+
Enabled: core.BoolPtr(false),
317+
},
318+
{
319+
OfferingName: "deploy-arch-ibm-kms",
320+
OfferingFlavor: "fully-configurable",
321+
Enabled: core.BoolPtr(false),
322+
},
323+
{
324+
OfferingName: "deploy-arch-ibm-cos",
325+
OfferingFlavor: "instance",
326+
Enabled: core.BoolPtr(false),
327+
},
328+
{
329+
OfferingName: "deploy-arch-ibm-cloud-logs",
330+
OfferingFlavor: "fully-configurable",
331+
Enabled: core.BoolPtr(false),
332+
},
333+
{
334+
OfferingName: "deploy-arch-ibm-cloud-monitoring",
335+
OfferingFlavor: "fully-configurable",
336+
Enabled: core.BoolPtr(false),
337+
},
338+
{
339+
OfferingName: "deploy-arch-ibm-activity-tracker",
340+
OfferingFlavor: "fully-configurable",
341+
Enabled: core.BoolPtr(false),
342+
},
343+
{
344+
OfferingName: "deploy-arch-ibm-secrets-manager",
345+
OfferingFlavor: "fully-configurable",
346+
Enabled: core.BoolPtr(false),
347+
},
348+
{
349+
OfferingName: "deploy-arch-ibm-scc-workload-protection",
350+
OfferingFlavor: "fully-configurable",
351+
Enabled: core.BoolPtr(true),
352+
},
353+
{
354+
OfferingName: "deploy-arch-ibm-apprapp",
355+
OfferingFlavor: "fully-configurable",
356+
Enabled: core.BoolPtr(false),
357+
},
358+
},
359+
},
360+
{
361+
Name: "observability-with-no-deps",
362+
Prefix: "obs-no-dep",
363+
Dependencies: []cloudinfo.AddonConfig{
364+
{
365+
OfferingName: "deploy-arch-ibm-slz-vpc",
366+
OfferingFlavor: "fully-configurable",
367+
Enabled: core.BoolPtr(false),
368+
},
369+
{
370+
OfferingName: "deploy-arch-ibm-account-infra-base",
371+
OfferingFlavor: "resource-group-only",
372+
Enabled: core.BoolPtr(false),
373+
},
374+
{
375+
OfferingName: "deploy-arch-ibm-kms",
376+
OfferingFlavor: "fully-configurable",
377+
Enabled: core.BoolPtr(false),
378+
},
379+
{
380+
OfferingName: "deploy-arch-ibm-cos",
381+
OfferingFlavor: "instance",
382+
Enabled: core.BoolPtr(false),
383+
},
384+
{
385+
OfferingName: "deploy-arch-ibm-cloud-logs",
386+
OfferingFlavor: "fully-configurable",
387+
Enabled: core.BoolPtr(true),
388+
},
389+
{
390+
OfferingName: "deploy-arch-ibm-cloud-monitoring",
391+
OfferingFlavor: "fully-configurable",
392+
Enabled: core.BoolPtr(true),
393+
},
394+
{
395+
OfferingName: "deploy-arch-ibm-activity-tracker",
396+
OfferingFlavor: "fully-configurable",
397+
Enabled: core.BoolPtr(true),
398+
},
399+
{
400+
OfferingName: "deploy-arch-ibm-secrets-manager",
401+
OfferingFlavor: "fully-configurable",
402+
Enabled: core.BoolPtr(false),
403+
},
404+
{
405+
OfferingName: "deploy-arch-ibm-scc-workload-protection",
406+
OfferingFlavor: "fully-configurable",
407+
Enabled: core.BoolPtr(false),
408+
},
409+
{
410+
OfferingName: "deploy-arch-ibm-event-notifications",
411+
OfferingFlavor: "fully-configurable",
412+
Enabled: core.BoolPtr(false),
413+
},
414+
},
415+
},
416+
}
417+
418+
baseOptions := testaddons.TestAddonsOptionsDefault(&testaddons.TestAddonOptions{
419+
Testing: t,
420+
Prefix: "adv-matrix",
421+
ResourceGroup: resourceGroup,
422+
QuietMode: true,
423+
DeployTimeoutMinutes: 240,
424+
})
425+
426+
matrix := testaddons.AddonTestMatrix{
427+
BaseOptions: baseOptions,
428+
TestCases: testCases,
429+
BaseSetupFunc: func(baseOptions *testaddons.TestAddonOptions, testCase testaddons.AddonTestCase) *testaddons.TestAddonOptions {
430+
return testaddons.TestAddonsOptionsDefault(&testaddons.TestAddonOptions{
431+
Testing: t,
432+
Prefix: testCase.Prefix,
433+
ResourceGroup: resourceGroup,
434+
VerboseOnFailure: true,
435+
})
436+
},
437+
AddonConfigFunc: func(options *testaddons.TestAddonOptions, testCase testaddons.AddonTestCase) cloudinfo.AddonConfig {
438+
return cloudinfo.NewAddonConfigTerraform(
439+
options.Prefix,
440+
"deploy-arch-ibm-slz-ocp",
441+
"fully-configurable",
442+
map[string]interface{}{
443+
"prefix": options.Prefix,
444+
"region": "us-south",
445+
},
446+
)
447+
},
448+
}
449+
450+
baseOptions.RunAddonTestMatrix(matrix)
451+
}

0 commit comments

Comments
 (0)