Skip to content

Commit c432228

Browse files
authored
test: fixed description typo and added upgrade test for schematics (#115)
1 parent d9831fb commit c432228

File tree

3 files changed

+82
-56
lines changed

3 files changed

+82
-56
lines changed

ibm_catalog.json

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"application_modernization"
2323
],
2424
"short_description": "Cloud architecture including instance of IBM Cloud MQ on Cloud with essential security and observability cloud services",
25-
"long_description": "IBM Cloud MQ on Cloud is an end-to-end solution to building and running secure queue managers.<br/>This architecture supports deploying an instance of MQ on Cloud on cloud together with optional security and observability cloud services.<br/>br/>ℹ️ This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) assets, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These single-service deployable architectures can be used on their own to streamline and automate service deployments through an [IaC approach](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-understanding-projects), or assembled together into a broader [automated IaC stack](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-config-stack) to automate the deployment of an end-to-end solution architecture.",
25+
"long_description": "IBM Cloud MQ on Cloud is an end-to-end solution to building and running secure queue managers.<br/>This architecture supports deploying an instance of MQ on Cloud on cloud together with optional security and observability cloud services.<br/><br/>ℹ️ This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) assets, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These single-service deployable architectures can be used on their own to streamline and automate service deployments through an [IaC approach](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-understanding-projects), or assembled together into a broader [automated IaC stack](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-config-stack) to automate the deployment of an end-to-end solution architecture.",
2626
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-mq-cloud/blob/main/solutions/fully-configurable/README.md",
2727
"offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-mq-cloud/main/images/MQ.svg",
2828
"provider_name": "IBM",
@@ -184,17 +184,9 @@
184184
"displayname": "Washington (us-east)",
185185
"value": "us-east"
186186
},
187-
{
188-
"displayname": "Dallas (us-south)",
189-
"value": "us-south"
190-
},
191187
{
192188
"displayname": "London (eu-gb)",
193189
"value": "eu-gb"
194-
},
195-
{
196-
"displayname": "Frankfurt (eu-de)",
197-
"value": "eu-de"
198190
}
199191
]
200192
},

solutions/fully-configurable/variables.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ variable "region" {
3131
default = "us-east"
3232

3333
validation {
34-
condition = contains(["eu-de", "eu-gb", "us-south", "us-east"], var.region)
35-
error_message = "Invalid value for `region`, valid values for MQ on Cloud offering are: `eu-de`, `eu-gb`, `us-south`, `us-east`"
34+
condition = contains(["eu-gb", "us-east"], var.region)
35+
error_message = "Invalid value for `region`, valid values for MQ on Cloud offering are: `eu-gb`, `us-east`"
3636
}
3737
}
3838

tests/pr_test.go

Lines changed: 79 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -60,63 +60,55 @@ func TestRunAdvancedExample(t *testing.T) {
6060
func TestRunUpgradeExample(t *testing.T) {
6161
// t.Parallel()
6262

63-
options := testhelper.TestOptionsDefaultWithVars(&testhelper.TestOptions{
64-
Testing: t,
65-
TerraformDir: standardSolutionTerraformDir,
66-
Prefix: "mq",
67-
Region: "us-east",
68-
TerraformVars: map[string]interface{}{
69-
"existing_mq_capacity_crn": permanentResources["mq_capacity_crn"],
70-
"existing_resource_group_name": resourceGroup,
71-
"deployment_name": "da-upg-instance",
72-
"prefix": "mqupg",
73-
"queue_manager_name": "da_upg",
74-
"queue_manager_display_name": "da-upg-display",
75-
"queue_manager_size": "xsmall",
76-
"application_name": "app",
77-
"user_email": "mq-user@exmaple.com",
78-
"user_name": "mq-user",
79-
"provider_visibility": "public",
80-
},
81-
})
63+
options := setupOptions(t, "mqupg", advancedExampleDir)
8264

83-
// TODO: Once this test is on main, make this RunTestUpgrade
84-
output, err := options.RunTestConsistency()
85-
if !options.UpgradeTestSkipped {
86-
assert.Nil(t, err, "This should not have errored")
87-
assert.NotNil(t, output, "Expected some output")
88-
}
65+
output, err := options.RunTestUpgrade()
66+
assert.Nil(t, err, "Upgrade test should not have errored")
67+
assert.NotNil(t, output, "Expected some output")
8968
}
9069

91-
// Run the DA in minimal configuration, valid logic for options
70+
// Run the DA on Schematics in minimal configuration, valid logic for options
9271
// used in catalog pipeline
93-
func TestRunInstanceOnlyExample(t *testing.T) {
72+
func TestRunStandardInstanceOnlySolutionSchematics(t *testing.T) {
9473
// t.Parallel()
9574

96-
options := testhelper.TestOptionsDefaultWithVars(&testhelper.TestOptions{
97-
Testing: t,
98-
TerraformDir: standardSolutionTerraformDir,
99-
Prefix: "mqi",
100-
Region: "us-east",
101-
TerraformVars: map[string]interface{}{
102-
"existing_mq_capacity_crn": permanentResources["mq_capacity_crn"],
103-
"existing_resource_group_name": resourceGroup,
104-
"deployment_name": "instance-only",
105-
"prefix": "mqi",
106-
"queue_manager_name": "inst",
107-
"queue_manager_display_name": "instance-display",
108-
"queue_manager_size": "xsmall",
109-
"provider_visibility": "public",
75+
options := testschematic.TestSchematicOptionsDefault(&testschematic.TestSchematicOptions{
76+
Testing: t,
77+
TarIncludePatterns: []string{
78+
"*.tf",
79+
"modules/*/*.tf",
80+
"modules/*/*.sh",
81+
standardSolutionTerraformDir + "/*.tf",
11082
},
83+
TemplateFolder: standardSolutionTerraformDir,
84+
Tags: []string{"test-schematic"},
85+
Prefix: "mqi",
86+
DeleteWorkspaceOnFail: false,
87+
WaitJobCompleteMinutes: 60,
88+
Region: "us-east",
11189
})
11290

113-
output, err := options.RunTestConsistency()
114-
if !options.UpgradeTestSkipped {
115-
assert.Nil(t, err, "This should not have errored")
116-
assert.NotNil(t, output, "Expected some output")
91+
options.TerraformVars = []testschematic.TestSchematicTerraformVar{
92+
{Name: "ibmcloud_api_key", Value: options.RequiredEnvironmentVars["TF_VAR_ibmcloud_api_key"], DataType: "string", Secure: true},
93+
{Name: "existing_mq_capacity_crn", Value: permanentResources["mq_capacity_crn"], DataType: "string"},
94+
{Name: "existing_resource_group_name", Value: resourceGroup, DataType: "string"},
95+
{Name: "prefix", Value: options.Prefix, DataType: "string"},
96+
{Name: "region", Value: "us-east", DataType: "string"},
97+
{Name: "deployment_name", Value: "da-mq-instance", DataType: "string"},
98+
{Name: "queue_manager_name", Value: "inst", DataType: "string"},
99+
{Name: "queue_manager_display_name", Value: "instance-display", DataType: "string"},
100+
{Name: "queue_manager_size", Value: "xsmall", DataType: "string"},
101+
{Name: "application_name", Value: "daiapp", DataType: "string"},
102+
{Name: "user_email", Value: "mqida-user@exmaple.com", DataType: "string"},
103+
{Name: "user_name", Value: "mqida-user", DataType: "string"},
104+
// forcing provider visibility to public due to this provider bug https://github.ibm.com/GoldenEye/issues/issues/14309
105+
{Name: "provider_visibility", Value: "public", DataType: "string"},
117106
}
107+
err := options.RunSchematicTest()
108+
assert.Nil(t, err, "This should not have errored")
118109
}
119110

111+
// Run the DA on Schematics in full configuration
120112
func TestRunStandardSolutionSchematics(t *testing.T) {
121113
// t.Parallel()
122114

@@ -155,3 +147,45 @@ func TestRunStandardSolutionSchematics(t *testing.T) {
155147
err := options.RunSchematicTest()
156148
assert.Nil(t, err, "This should not have errored")
157149
}
150+
151+
func TestRunStandardSolutionUpgradeSchematics(t *testing.T) {
152+
// t.Parallel()
153+
154+
options := testschematic.TestSchematicOptionsDefault(&testschematic.TestSchematicOptions{
155+
Testing: t,
156+
TarIncludePatterns: []string{
157+
"*.tf",
158+
"modules/*/*.tf",
159+
"modules/*/*.sh",
160+
standardSolutionTerraformDir + "/*.tf",
161+
},
162+
TemplateFolder: standardSolutionTerraformDir,
163+
Tags: []string{"test-schematic"},
164+
Prefix: "mqupg-da",
165+
DeleteWorkspaceOnFail: false,
166+
WaitJobCompleteMinutes: 60,
167+
Region: "us-south",
168+
})
169+
170+
options.TerraformVars = []testschematic.TestSchematicTerraformVar{
171+
{Name: "ibmcloud_api_key", Value: options.RequiredEnvironmentVars["TF_VAR_ibmcloud_api_key"], DataType: "string", Secure: true},
172+
{Name: "existing_mq_capacity_crn", Value: permanentResources["mq_capacity_crn"], DataType: "string"},
173+
{Name: "existing_resource_group_name", Value: resourceGroup, DataType: "string"},
174+
{Name: "prefix", Value: options.Prefix, DataType: "string"},
175+
{Name: "region", Value: "us-east", DataType: "string"},
176+
{Name: "deployment_name", Value: "daupg-mq-instance", DataType: "string"},
177+
{Name: "queue_manager_name", Value: "daupg_qm", DataType: "string"},
178+
{Name: "queue_manager_display_name", Value: "daupg-qm-display", DataType: "string"},
179+
{Name: "queue_manager_size", Value: "xsmall", DataType: "string"},
180+
{Name: "application_name", Value: "daupgapp", DataType: "string"},
181+
{Name: "user_email", Value: "mqda-user@exmaple.com", DataType: "string"},
182+
{Name: "user_name", Value: "mqda-user", DataType: "string"},
183+
// forcing provider visibility to public due to this provider bug https://github.ibm.com/GoldenEye/issues/issues/14309
184+
{Name: "provider_visibility", Value: "public", DataType: "string"},
185+
}
186+
187+
err := options.RunSchematicUpgradeTest()
188+
if !options.UpgradeTestSkipped {
189+
assert.NoError(t, err, "Schematic Upgrade Test had an unexpected error")
190+
}
191+
}

0 commit comments

Comments
 (0)