Skip to content

Commit

Permalink
Fix failing case in publicapi test suite
Browse files Browse the repository at this point in the history
 - Add `ginkgo.report` to .gitignore
 - Introduce `GetTestHandler` and `CheckResponse` functions in middleware tests
 - Remove duplicated test utility functions from `publicapiserver_suite_test.go`
 - Add missing stub routes for eventgenerator
 - Adjust logging in `TLSReloadTransport` to exclude request data
  • Loading branch information
bonzofenix authored and silvestre committed Jan 27, 2025
1 parent d6ff706 commit c9ce482
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 20 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ blobs
*.swp
src/changeloglockcleaner/vendor
**/coverprofile.out
**/ginkgo.report
**/coverprofile.out.*
**/pom.xml.versionsBackup
bosh-lite/deployments/*
Expand Down
17 changes: 17 additions & 0 deletions src/autoscaler/api/publicapiserver/middleware_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package publicapiserver_test

import (
"encoding/json"
"fmt"
"net/http"
"net/http/httptest"
Expand Down Expand Up @@ -258,3 +259,19 @@ var _ = Describe("Middleware", func() {
})

})

func GetTestHandler() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
_, err := w.Write([]byte("Success"))
Expect(err).NotTo(HaveOccurred())
}
}

func CheckResponse(resp *httptest.ResponseRecorder, statusCode int, errResponse models.ErrorResponse) {
GinkgoHelper()
Expect(resp.Code).To(Equal(statusCode))
var errResp models.ErrorResponse
err := json.NewDecoder(resp.Body).Decode(&errResp)
Expect(err).NotTo(HaveOccurred())
Expect(errResp).To(Equal(errResponse))
}
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,7 @@ var _ = Describe("PublicApiServer", func() {
BeforeEach(func() {
eventGeneratorStatus = http.StatusOK
})

It("should succeed", func() {
verifyResponse(httpClient, serverUrl, "/v1/apps/"+TEST_APP_ID+"/aggregated_metric_histories/"+TEST_METRIC_TYPE,
map[string]string{"Authorization": TEST_USER_TOKEN, "X-Autoscaler-Token": TEST_CLIENT_TOKEN}, http.MethodGet, "", http.StatusOK)
Expand Down
22 changes: 4 additions & 18 deletions src/autoscaler/api/publicapiserver/publicapiserver_suite_test.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package publicapiserver_test

import (
"encoding/json"
"net/http"
"net/http/httptest"
"net/url"
"os"
"path/filepath"
Expand Down Expand Up @@ -192,6 +190,10 @@ var _ = BeforeSuite(func() {
Expect(err).NotTo(HaveOccurred())
metricsCollectorServer.RouteToHandler(http.MethodGet, metricsCollectorPathMatcher, ghttp.RespondWithJSONEncodedPtr(&metricsCollectorStatus, &metricsCollectorResponse))

eventGeneratorPathMatcher, err := regexp.Compile(`/v1/apps/[A-Za-z0-9\-]+/aggregated_metric_histories/[a-zA-Z0-9_]+`)
Expect(err).NotTo(HaveOccurred())
eventGeneratorServer.RouteToHandler(http.MethodGet, eventGeneratorPathMatcher, ghttp.RespondWithJSONEncodedPtr(&eventGeneratorStatus, &eventGeneratorResponse))

schedulerPathMatcher, err := regexp.Compile(`/v1/apps/[A-Za-z0-9\-]+/schedules`)
Expect(err).NotTo(HaveOccurred())
schedulerErrJson = "{}"
Expand All @@ -204,19 +206,3 @@ var _ = AfterSuite(func() {
metricsCollectorServer.Close()
eventGeneratorServer.Close()
})

func GetTestHandler() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
_, err := w.Write([]byte("Success"))
Expect(err).NotTo(HaveOccurred())
}
}

func CheckResponse(resp *httptest.ResponseRecorder, statusCode int, errResponse models.ErrorResponse) {
GinkgoHelper()
Expect(resp.Code).To(Equal(statusCode))
var errResp models.ErrorResponse
err := json.NewDecoder(resp.Body).Decode(&errResp)
Expect(err).NotTo(HaveOccurred())
Expect(errResp).To(Equal(errResponse))
}
4 changes: 2 additions & 2 deletions src/autoscaler/helpers/httpclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ func (t *TLSReloadTransport) RoundTrip(req *http.Request) (*http.Response, error

// Checks for cert validity within 5m timeframe. See https://docs.cloudfoundry.org/devguide/deploy-apps/instance-identity.html
if t.certificateExpiringWithin(5 * time.Minute) {
t.logger.Debug("reloading-cert", lager.Data{"request": req})
t.logger.Debug("reloading-cert")
t.reloadCert()
} else {
t.logger.Debug("cert-not-expiring", lager.Data{"request": req})
t.logger.Debug("cert-not-expiring")
}

return t.Base.RoundTrip(req)
Expand Down

0 comments on commit c9ce482

Please sign in to comment.