github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/core/operations/version_test.go (about) 1 /* 2 Copyright hechain All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package operations 8 9 import ( 10 "net/http" 11 "net/http/httptest" 12 13 . "github.com/onsi/ginkgo" 14 . "github.com/onsi/gomega" 15 ) 16 17 var _ = Describe("Version", func() { 18 It("returns 200 if the method is GET", func() { 19 resp := httptest.NewRecorder() 20 21 versionInfoHandler := &VersionInfoHandler{Version: "latest"} 22 versionInfoHandler.ServeHTTP(resp, &http.Request{Method: http.MethodGet}) 23 Expect(resp.Result().StatusCode).To(Equal(http.StatusOK)) 24 Expect(resp.Result().Header.Get("Content-Type")).To(Equal("application/json")) 25 Expect(resp.Body).To(MatchJSON(`{"Version": "latest"}`)) 26 }) 27 28 It("returns 400 when an unsupported method is used", func() { 29 resp := httptest.NewRecorder() 30 31 versionInfoHandler := &VersionInfoHandler{} 32 versionInfoHandler.ServeHTTP(resp, &http.Request{Method: http.MethodPut}) 33 Expect(resp.Result().StatusCode).To(Equal(http.StatusBadRequest)) 34 Expect(resp.Body).To(MatchJSON(`{"Error": "invalid request method: PUT"}`)) 35 }) 36 37 It("returns 500 when the payload is invalid JSON", func() { 38 resp := httptest.NewRecorder() 39 40 versionInfoHandler := &VersionInfoHandler{} 41 versionInfoHandler.sendResponse(resp, 200, make(chan int)) 42 Expect(resp.Result().StatusCode).To(Equal(http.StatusInternalServerError)) 43 }) 44 })