github.com/mendersoftware/go-lib-micro@v0.0.0-20240304135804-e8e39c59b148/rest.utils/utils_test.go (about) 1 // Copyright 2023 Northern.tech AS 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package rest 16 17 import ( 18 "encoding/json" 19 "net/http" 20 "net/http/httptest" 21 "testing" 22 23 "github.com/gin-gonic/gin" 24 "github.com/pkg/errors" 25 "github.com/stretchr/testify/assert" 26 ) 27 28 func TestRenderError(t *testing.T) { 29 30 engine := gin.New() 31 engine.GET("/test", func(c *gin.Context) { 32 err := errors.New("test error") 33 RenderError(c, http.StatusInternalServerError, err) 34 }) 35 36 w := httptest.NewRecorder() 37 req, _ := http.NewRequest("GET", "http://localhost/test", nil) 38 engine.ServeHTTP(w, req) 39 40 apiErr := Error{} 41 _ = json.Unmarshal(w.Body.Bytes(), &apiErr) 42 assert.EqualError(t, apiErr, "test error") 43 }