Skip to content

Commit 0ff8b41

Browse files
authored
tests: Addons permutations tests (#1068)
1 parent 92abcb6 commit 0ff8b41

File tree

1 file changed

+143
-0
lines changed

1 file changed

+143
-0
lines changed

tests/other_test.go

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

7+
"github.com/IBM/go-sdk-core/v5/core"
8+
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/cloudinfo"
9+
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testaddons"
710
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testhelper"
811

912
"github.com/stretchr/testify/assert"
@@ -53,3 +56,143 @@ func TestRunCustomSecurityGroupExample(t *testing.T) {
5356
assert.Nil(t, err, "This should not have errored")
5457
assert.NotNil(t, output, "Expected some output")
5558
}
59+
60+
func TestAddonPermutations(t *testing.T) {
61+
t.Parallel()
62+
63+
testCases := []testaddons.AddonTestCase{
64+
{
65+
Name: "no-addons",
66+
Prefix: "no-addons",
67+
Dependencies: []cloudinfo.AddonConfig{
68+
{
69+
OfferingName: "deploy-arch-ibm-kms",
70+
OfferingFlavor: "fully-configurable",
71+
Enabled: core.BoolPtr(false),
72+
},
73+
{
74+
OfferingName: "deploy-arch-ibm-cloud-logs",
75+
OfferingFlavor: "fully-configurable",
76+
Enabled: core.BoolPtr(false),
77+
},
78+
{
79+
OfferingName: "deploy-arch-ibm-cloud-monitoring",
80+
OfferingFlavor: "fully-configurable",
81+
Enabled: core.BoolPtr(false),
82+
},
83+
{
84+
OfferingName: "deploy-arch-ibm-activity-tracker",
85+
OfferingFlavor: "fully-configurable",
86+
Enabled: core.BoolPtr(false),
87+
},
88+
{
89+
OfferingName: "deploy-arch-ibm-scc-workload-protection",
90+
OfferingFlavor: "fully-configurable",
91+
Enabled: core.BoolPtr(false),
92+
},
93+
},
94+
},
95+
{
96+
Name: "all-addons",
97+
Prefix: "all-addons",
98+
Dependencies: []cloudinfo.AddonConfig{
99+
{
100+
OfferingName: "deploy-arch-ibm-kms",
101+
OfferingFlavor: "fully-configurable",
102+
Enabled: core.BoolPtr(true),
103+
},
104+
{
105+
OfferingName: "deploy-arch-ibm-cos",
106+
OfferingFlavor: "instance",
107+
Enabled: core.BoolPtr(true),
108+
},
109+
{
110+
OfferingName: "deploy-arch-ibm-cloud-logs",
111+
OfferingFlavor: "fully-configurable",
112+
Enabled: core.BoolPtr(true),
113+
},
114+
{
115+
OfferingName: "deploy-arch-ibm-cloud-monitoring",
116+
OfferingFlavor: "fully-configurable",
117+
Enabled: core.BoolPtr(true),
118+
},
119+
{
120+
OfferingName: "deploy-arch-ibm-activity-tracker",
121+
OfferingFlavor: "fully-configurable",
122+
Enabled: core.BoolPtr(true),
123+
},
124+
{
125+
OfferingName: "deploy-arch-ibm-scc-workload-protection",
126+
OfferingFlavor: "fully-configurable",
127+
Enabled: core.BoolPtr(true),
128+
},
129+
},
130+
},
131+
{
132+
Name: "observability-with-no-deps",
133+
Prefix: "obs-no-dep",
134+
Dependencies: []cloudinfo.AddonConfig{
135+
{
136+
OfferingName: "deploy-arch-ibm-kms",
137+
OfferingFlavor: "fully-configurable",
138+
Enabled: core.BoolPtr(false),
139+
},
140+
{
141+
OfferingName: "deploy-arch-ibm-cloud-logs",
142+
OfferingFlavor: "fully-configurable",
143+
Enabled: core.BoolPtr(true),
144+
},
145+
{
146+
OfferingName: "deploy-arch-ibm-cloud-monitoring",
147+
OfferingFlavor: "fully-configurable",
148+
Enabled: core.BoolPtr(true),
149+
},
150+
{
151+
OfferingName: "deploy-arch-ibm-activity-tracker",
152+
OfferingFlavor: "fully-configurable",
153+
Enabled: core.BoolPtr(true),
154+
},
155+
{
156+
OfferingName: "deploy-arch-ibm-scc-workload-protection",
157+
OfferingFlavor: "fully-configurable",
158+
Enabled: core.BoolPtr(false),
159+
},
160+
{
161+
OfferingName: "deploy-arch-ibm-event-notifications",
162+
OfferingFlavor: "fully-configurable",
163+
Enabled: core.BoolPtr(false),
164+
},
165+
},
166+
},
167+
}
168+
169+
baseOptions := testaddons.TestAddonsOptionsDefault(&testaddons.TestAddonOptions{
170+
Testing: t,
171+
ResourceGroup: resourceGroup,
172+
QuietMode: true,
173+
DeployTimeoutMinutes: 240,
174+
})
175+
176+
matrix := testaddons.AddonTestMatrix{
177+
BaseOptions: baseOptions,
178+
TestCases: testCases,
179+
BaseSetupFunc: func(baseOptions *testaddons.TestAddonOptions, testCase testaddons.AddonTestCase) *testaddons.TestAddonOptions {
180+
return testaddons.TestAddonsOptionsDefault(&testaddons.TestAddonOptions{
181+
Testing: t,
182+
Prefix: testCase.Prefix,
183+
ResourceGroup: resourceGroup,
184+
VerboseOnFailure: true,
185+
})
186+
},
187+
AddonConfigFunc: func(options *testaddons.TestAddonOptions, testCase testaddons.AddonTestCase) cloudinfo.AddonConfig {
188+
return cloudinfo.NewAddonConfigTerraform(
189+
options.Prefix,
190+
"deploy-arch-ibm-slz-vpc",
191+
"fully-configurable",
192+
map[string]interface{}{},
193+
)
194+
},
195+
}
196+
197+
baseOptions.RunAddonTestMatrix(matrix)
198+
}

0 commit comments

Comments
 (0)