Skip to content

Commit 0b47e9c

Browse files
authored
Merge pull request #38 from aerogear/e2eGoldenFileFix
integration golden file fix
2 parents 6bea926 + 9e6867f commit 0b47e9c

File tree

4 files changed

+60
-39
lines changed

4 files changed

+60
-39
lines changed

integration/client_get_services_test.go

+21
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"os"
77
"os/exec"
88
"path"
9+
"regexp"
910
"testing"
1011
)
1112

@@ -16,6 +17,13 @@ var update = flag.Bool("update", false, "update golden files")
1617
const testPath = "getServicesTestData/"
1718

1819
func TestGetServices(t *testing.T) {
20+
//regexes to match dynamic properties in service json, UID resourceVersion and creationTimestamp
21+
regexes := []*regexp.Regexp{
22+
regexp.MustCompile("\"uid\".*?,"),
23+
regexp.MustCompile("\"resourceVersion\".*?,"),
24+
regexp.MustCompile("\"creationTimestamp\".*?,"),
25+
}
26+
1927
tests := []struct {
2028
name string
2129
args []string
@@ -38,6 +46,7 @@ func TestGetServices(t *testing.T) {
3846
if err != nil {
3947
t.Fatal(err)
4048
}
49+
4150
if *update {
4251
WriteSnapshot(t, testPath+test.fixture, output)
4352
}
@@ -46,6 +55,11 @@ func TestGetServices(t *testing.T) {
4655

4756
expected := LoadSnapshot(t, testPath+test.fixture)
4857

58+
if test.name == "json output" {
59+
actual = cleanStringByRegex(actual, regexes)
60+
expected = cleanStringByRegex(expected, regexes)
61+
}
62+
4963
if actual != expected {
5064
t.Fatalf("actual = \n%s, expected = \n%s", actual, expected)
5165
}
@@ -54,6 +68,13 @@ func TestGetServices(t *testing.T) {
5468

5569
}
5670

71+
func cleanStringByRegex(input string, regexes []*regexp.Regexp) string {
72+
for _, regex := range regexes {
73+
input = regex.ReplaceAllString(input, "")
74+
}
75+
return input
76+
}
77+
5778
func TestMain(m *testing.M) {
5879
err := os.Chdir("..")
5980
if err != nil {
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"metadata":{},"items":[{"metadata":{"name":"1522a4d0e2fbf86a26cbe096eb1b6b2d","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/1522a4d0e2fbf86a26cbe096eb1b6b2d","uid":"d5a19165-f790-11e7-ba49-0242ac110006","resourceVersion":"33","creationTimestamp":"2018-01-12T12:05:08Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-unifiedpush-apb","externalID":"1522a4d0e2fbf86a26cbe096eb1b6b2d","description":"AeroGear UnifiedPush Server","bindable":true,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"dependencies":["MySQL:55"],"displayName":"AeroGear UPS","documentationUrl":"https://aerogear.org/push","imageUrl":"https://pbs.twimg.com/profile_images/1794440005/aerogear_icon-1_400x400.png","providerDisplayName":"Red Hat, Inc.","serviceName":"ups"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}},{"metadata":{"name":"2b825339e8d685a78476621a252beea8","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/2b825339e8d685a78476621a252beea8","uid":"d5a087b5-f790-11e7-ba49-0242ac110006","resourceVersion":"31","creationTimestamp":"2018-01-12T12:05:08Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-3scale-apb","externalID":"2b825339e8d685a78476621a252beea8","description":"Unlock the power of your APIs. This will deploy Apicast to your Openshift cluster and connect it to a dedicated Redis. For this to function correctly it needs to be configured with a token and domain for the account it should pull it's configuration values from (usually in 3scale.net).\nYou can create an account with 3scale.net here: https://www.3scale.net/signup/\n","bindable":true,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"displayName":"3Scale","documentationUrl":"https://www.3scale.net/api-management/interactive-api-documentation/","imageUrl":"https://avatars1.githubusercontent.com/u/21415?s=200\u0026v=4","providerDisplayName":"Red Hat, Inc.","serviceName":"3scale"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}},{"metadata":{"name":"9623d53183cc78619f888ea8499c678e","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/9623d53183cc78619f888ea8499c678e","uid":"d5a00586-f790-11e7-ba49-0242ac110006","resourceVersion":"30","creationTimestamp":"2018-01-12T12:05:08Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-metrics-apb","externalID":"9623d53183cc78619f888ea8499c678e","description":"Installs a metrics service based on Prometheus and Grafana","bindable":false,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"displayName":"Metrics","documentationUrl":"https://prometheus.io/docs/introduction/overview/","imageUrl":"https://avatars1.githubusercontent.com/u/3380462?s=200\u0026v=4","providerDisplayName":"Red Hat, Inc.","serviceName":"prometheus"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}},{"metadata":{"name":"a0c0c2478554458d5c77abc95f0473a3","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/a0c0c2478554458d5c77abc95f0473a3","uid":"d5a11f15-f790-11e7-ba49-0242ac110006","resourceVersion":"32","creationTimestamp":"2018-01-12T12:05:08Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-aerogear-digger-apb","externalID":"a0c0c2478554458d5c77abc95f0473a3","description":"Mobile CI/CD service that integrates with Jenkins Pipelines to test and build your mobile binaries.","bindable":false,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"displayName":"Mobile CI/CD","documentationUrl":"https://aerogear.org/digger/","imageUrl":"https://aerogear.org/img/aerogeardigger_icon_32px_cropped.png","longDescription":"To use the Mobile CI/CD service you must first agree to the Android SDK License Agreement. By checking this box you are agreeing to the Android Software Development Kit License agreement which can be read at the following URL: https://developer.android.com/studio/terms.html\n\n. If the box is not checked the installer will take no action.","providerDisplayName":"Red Hat, Inc.","serviceName":"aerogear-digger-apb"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}},{"metadata":{"name":"b95513950bb3f132de25d58fb75f8dca","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/b95513950bb3f132de25d58fb75f8dca","uid":"d5a20375-f790-11e7-ba49-0242ac110006","resourceVersion":"34","creationTimestamp":"2018-01-12T12:05:08Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-keycloak-apb","externalID":"b95513950bb3f132de25d58fb75f8dca","description":"Keycloak - Open Source Identity and Access Management","bindable":true,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"dependencies":["Postgresql:9.5"],"displayName":"Keycloak","documentationUrl":"http://www.keycloak.org/documentation.html","imageUrl":"https://pbs.twimg.com/profile_images/702119821979344897/oAC05cEB_400x400.png","providerDisplayName":"Red Hat, Inc.","serviceName":"keycloak"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}},{"metadata":{"name":"c57e94c36c1e7f6bb41cf7c589d9eb08","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/c57e94c36c1e7f6bb41cf7c589d9eb08","uid":"d5a2face-f790-11e7-ba49-0242ac110006","resourceVersion":"36","creationTimestamp":"2018-01-12T12:05:08Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-fh-sync-server-apb","externalID":"c57e94c36c1e7f6bb41cf7c589d9eb08","description":"The FeedHenry Sync Server APB","bindable":false,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"displayName":"FeedHenry Sync Server","documentationUrl":"http://feedhenry.org/projects/#data-synchronization","imageUrl":"https://avatars3.githubusercontent.com/u/772226?s=200\u0026v=4","integrations":"keycloak,apiKeys","providerDisplayName":"Red Hat, Inc.","serviceName":"fh-sync-server"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}}]}
1+
{"metadata":{},"items":[{"metadata":{"name":"1522a4d0e2fbf86a26cbe096eb1b6b2d","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/1522a4d0e2fbf86a26cbe096eb1b6b2d","uid":"f245ebb9-fb89-11e7-b96a-0242ac110002","resourceVersion":"30","creationTimestamp":"2018-01-17T13:25:55Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-unifiedpush-apb","externalID":"1522a4d0e2fbf86a26cbe096eb1b6b2d","description":"AeroGear UnifiedPush Server","bindable":true,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"dependencies":["MySQL:55"],"displayName":"AeroGear UPS","documentationUrl":"https://aerogear.org/push","imageUrl":"https://pbs.twimg.com/profile_images/1794440005/aerogear_icon-1_400x400.png","providerDisplayName":"Red Hat, Inc.","serviceName":"ups"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}},{"metadata":{"name":"2b825339e8d685a78476621a252beea8","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/2b825339e8d685a78476621a252beea8","uid":"f2661c87-fb89-11e7-b96a-0242ac110002","resourceVersion":"37","creationTimestamp":"2018-01-17T13:25:55Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-3scale-apb","externalID":"2b825339e8d685a78476621a252beea8","description":"Unlock the power of your APIs. This will deploy Apicast to your Openshift cluster and connect it to a dedicated Redis. For this to function correctly it needs to be configured with a token and domain for the account it should pull it's configuration values from (usually in 3scale.net).\nYou can create an account with 3scale.net here: https://www.3scale.net/signup/\n","bindable":true,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"displayName":"3Scale","documentationUrl":"https://www.3scale.net/api-management/interactive-api-documentation/","imageUrl":"https://avatars1.githubusercontent.com/u/21415?s=200\u0026v=4","providerDisplayName":"Red Hat, Inc.","serviceName":"3scale"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}},{"metadata":{"name":"9623d53183cc78619f888ea8499c678e","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/9623d53183cc78619f888ea8499c678e","uid":"f2473a79-fb89-11e7-b96a-0242ac110002","resourceVersion":"32","creationTimestamp":"2018-01-17T13:25:55Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-metrics-apb","externalID":"9623d53183cc78619f888ea8499c678e","description":"Installs a metrics service based on Prometheus and Grafana","bindable":false,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"displayName":"Metrics","documentationUrl":"https://prometheus.io/docs/introduction/overview/","imageUrl":"https://avatars1.githubusercontent.com/u/3380462?s=200\u0026v=4","providerDisplayName":"Red Hat, Inc.","serviceName":"prometheus"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}},{"metadata":{"name":"a0c0c2478554458d5c77abc95f0473a3","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/a0c0c2478554458d5c77abc95f0473a3","uid":"f2469a3a-fb89-11e7-b96a-0242ac110002","resourceVersion":"31","creationTimestamp":"2018-01-17T13:25:55Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-aerogear-digger-apb","externalID":"a0c0c2478554458d5c77abc95f0473a3","description":"Mobile CI/CD service that integrates with Jenkins Pipelines to test and build your mobile binaries.","bindable":false,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"displayName":"Mobile CI/CD","documentationUrl":"https://aerogear.org/digger/","imageUrl":"https://aerogear.org/img/aerogeardigger_icon_32px_cropped.png","longDescription":"To use the Mobile CI/CD service you must first agree to the Android SDK License Agreement. By checking this box you are agreeing to the Android Software Development Kit License agreement which can be read at the following URL: https://developer.android.com/studio/terms.html\n\n. If the box is not checked the installer will take no action.","providerDisplayName":"Red Hat, Inc.","serviceName":"aerogear-digger-apb"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}},{"metadata":{"name":"b95513950bb3f132de25d58fb75f8dca","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/b95513950bb3f132de25d58fb75f8dca","uid":"f2499c77-fb89-11e7-b96a-0242ac110002","resourceVersion":"36","creationTimestamp":"2018-01-17T13:25:55Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-keycloak-apb","externalID":"b95513950bb3f132de25d58fb75f8dca","description":"Keycloak - Open Source Identity and Access Management","bindable":true,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"dependencies":["Postgresql:9.5"],"displayName":"Keycloak","documentationUrl":"http://www.keycloak.org/documentation.html","imageUrl":"https://pbs.twimg.com/profile_images/702119821979344897/oAC05cEB_400x400.png","providerDisplayName":"Red Hat, Inc.","serviceName":"keycloak"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}},{"metadata":{"name":"c57e94c36c1e7f6bb41cf7c589d9eb08","selfLink":"/apis/servicecatalog.k8s.io/v1beta1/clusterserviceclasses/c57e94c36c1e7f6bb41cf7c589d9eb08","uid":"f28461c0-fb89-11e7-b96a-0242ac110002","resourceVersion":"38","creationTimestamp":"2018-01-17T13:25:55Z"},"spec":{"clusterServiceBrokerName":"ansible-service-broker","externalName":"dh-fh-sync-server-apb","externalID":"c57e94c36c1e7f6bb41cf7c589d9eb08","description":"The FeedHenry Sync Server APB","bindable":false,"binding_retrievable":false,"planUpdatable":false,"externalMetadata":{"displayName":"FeedHenry Sync Server","documentationUrl":"http://feedhenry.org/projects/#data-synchronization","imageUrl":"https://avatars3.githubusercontent.com/u/772226?s=200\u0026v=4","integrations":"keycloak,apiKeys","providerDisplayName":"Red Hat, Inc.","serviceName":"fh-sync-server"},"tags":["mobile-service"]},"status":{"removedFromBrokerCatalog":false}}]}
+19-19
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
+------------------------+---------------------+------------------+--------------------------------+----------------------------------+
2-
| ID | NAME | INTEGRATIONS | PARAMETERS | CLASS |
3-
+------------------------+---------------------+------------------+--------------------------------+----------------------------------+
4-
| dh-unifiedpush-apb | ups | | MYSQL_DATABASE, | 1522a4d0e2fbf86a26cbe096eb1b6b2d |
5-
| | | | MYSQL_PASSWORD, | |
6-
| | | | MYSQL_ROOT_PASSWORD, | |
7-
| | | | MYSQL_USER, MYSQL_VERSION | |
8-
| dh-3scale-apb | 3scale | | THREESCALE_ACCESS_TOKEN, | 2b825339e8d685a78476621a252beea8 |
9-
| | | | THREESCALE_DOMAIN, | |
10-
| | | | THREESCALE_ENABLE_CORS, | |
11-
| | | | THREESCALE_SERVICE_ID | |
12-
| dh-metrics-apb | prometheus | | GRAFANA_STORAGE_SIZE, | 9623d53183cc78619f888ea8499c678e |
13-
| | | | PROMETHEUS_STORAGE_SIZE | |
14-
| dh-aerogear-digger-apb | aerogear-digger-apb | | ANDROID_LICENSE_AGREEMENT | a0c0c2478554458d5c77abc95f0473a3 |
15-
| dh-keycloak-apb | keycloak | | ADMIN_NAME, ADMIN_PASSWORD | b95513950bb3f132de25d58fb75f8dca |
16-
| dh-fh-sync-server-apb | fh-sync-server | keycloak,apiKeys | MONGODB_ADMIN_PASSWORD, | c57e94c36c1e7f6bb41cf7c589d9eb08 |
17-
| | | | MONGODB_USER_NAME, | |
18-
| | | | MONGODB_USER_PASSWORD | |
19-
+------------------------+---------------------+------------------+--------------------------------+----------------------------------+
1+
+---------------------+------------------+--------------------------------+
2+
| NAME | INTEGRATIONS | PARAMETERS |
3+
+---------------------+------------------+--------------------------------+
4+
| ups | | MYSQL_DATABASE, |
5+
| | | MYSQL_PASSWORD, |
6+
| | | MYSQL_ROOT_PASSWORD, |
7+
| | | MYSQL_USER, MYSQL_VERSION |
8+
| 3scale | | THREESCALE_ACCESS_TOKEN, |
9+
| | | THREESCALE_DOMAIN, |
10+
| | | THREESCALE_ENABLE_CORS, |
11+
| | | THREESCALE_SERVICE_ID |
12+
| prometheus | | GRAFANA_STORAGE_SIZE, |
13+
| | | PROMETHEUS_STORAGE_SIZE |
14+
| aerogear-digger-apb | | ANDROID_LICENSE_AGREEMENT |
15+
| keycloak | | ADMIN_NAME, ADMIN_PASSWORD |
16+
| fh-sync-server | keycloak,apiKeys | MONGODB_ADMIN_PASSWORD, |
17+
| | | MONGODB_USER_NAME, |
18+
| | | MONGODB_USER_PASSWORD |
19+
+---------------------+------------------+--------------------------------+

0 commit comments

Comments
 (0)