Adds tests to ensure sync does not panic when various endpoints are unreachable
diff --git a/apigeeSync_suite_test.go b/apigeeSync_suite_test.go index 51a40b3..92ddecd 100644 --- a/apigeeSync_suite_test.go +++ b/apigeeSync_suite_test.go
@@ -148,6 +148,10 @@ var _ = BeforeEach(func() { apid.Events().Close() + config.Set(configProxyServerBaseURI, testServer.URL) + config.Set(configSnapServerBaseURI, testServer.URL) + config.Set(configChangeServerBaseURI, testServer.URL) + token = "" downloadDataSnapshot = false downloadBootSnapshot = false
diff --git a/apigee_sync_test.go b/apigee_sync_test.go index d6520be..8ae7837 100644 --- a/apigee_sync_test.go +++ b/apigee_sync_test.go
@@ -5,6 +5,7 @@ "github.com/apigee-labs/transicator/common" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" + "time" ) var _ = Describe("listener", func() { @@ -26,4 +27,73 @@ bootstrap() }) -}) + + + It("should not panic when auth server when host lookup fails", func(done Done) { + defer GinkgoRecover() + + Expect(func() { + config.Set(configProxyServerBaseURI, "http://lookup-failure-auth-url") + go getBearerToken()}).ToNot(Panic()) + + time.Sleep(200 * time.Millisecond) + close(done) + }) + It("should not panic when auth server when url contains bad schema", func(done Done) { + defer GinkgoRecover() + + Expect(func() { + config.Set(configProxyServerBaseURI, "bad-schema-auth-url") + go getBearerToken()}).ToNot(Panic()) + + time.Sleep(200 * time.Millisecond) + close(done) + }) + + + It("should not panic when ss server when host lookup fails", func(done Done) { + defer GinkgoRecover() + + Expect(func() { + config.Set(configSnapServerBaseURI, "http://lookup-failure-ss-url") + go downloadSnapshot()}).ToNot(Panic()) + + time.Sleep(200 * time.Millisecond) + close(done) + }) + It("should not panic when ss server when url contains bad schema", func(done Done) { + defer GinkgoRecover() + + Expect(func() { + config.Set(configSnapServerBaseURI, "bad-schema-ss-url") + go downloadSnapshot()}).ToNot(Panic()) + + time.Sleep(200 * time.Millisecond) + close(done) + }) + + It("should not panic when change server host lookup fails", func(done Done) { + defer GinkgoRecover() + + Expect(func() { + config.Set(configChangeServerBaseURI, "http://lookup-failure-cs-url") + downloadDataSnapshot = true; + token = "prevent acces token call" + go updatePeriodicChanges()}).ToNot(Panic()) + + time.Sleep(200 * time.Millisecond) + close(done) + }) + It("should not panic when change server url contains bad schema", func(done Done) { + defer GinkgoRecover() + + Expect(func() { + config.Set(configChangeServerBaseURI, "bad-schema-cs-url") + downloadDataSnapshot = true; + token = "prevent getBearerToken call" + go updatePeriodicChanges()}).ToNot(Panic()) + + time.Sleep(200 * time.Millisecond) + close(done) + }) +}) \ No newline at end of file