11package handlers
22
33import (
4- "encoding/json"
54 "net/http"
65 "net/http/httptest"
76 "testing"
87
98 "github.com/stretchr/testify/assert"
9+ "github.com/xray-web/web-check-api/checks"
1010)
1111
1212func TestHandleGetHeaders (t * testing.T ) {
@@ -15,45 +15,24 @@ func TestHandleGetHeaders(t *testing.T) {
1515 t .Run ("url parameter is missing" , func (t * testing.T ) {
1616 req := httptest .NewRequest (http .MethodGet , "/headers" , nil )
1717 rec := httptest .NewRecorder ()
18- HandleGetHeaders ().ServeHTTP (rec , req )
18+ HandleGetHeaders (nil ).ServeHTTP (rec , req )
1919
2020 assert .Equal (t , http .StatusBadRequest , rec .Code )
2121 assert .JSONEq (t , `{"error": "missing URL parameter"}` , rec .Body .String ())
2222 })
2323
2424 t .Run ("invalid url format" , func (t * testing.T ) {
25- req := httptest .NewRequest (http .MethodGet , "/headers?url=invalid-url" , nil )
26- rec := httptest .NewRecorder ()
27- HandleGetHeaders ().ServeHTTP (rec , req )
28-
29- assert .Equal (t , http .StatusInternalServerError , rec .Code )
30- })
31-
32- t .Run ("valid url" , func (t * testing.T ) {
3325 mockServer := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
3426 w .Header ().Set ("Content-Type" , "application/json" )
3527 w .Header ().Set ("X-Custom-Header" , "value" )
3628 w .WriteHeader (http .StatusOK )
3729 }))
3830 defer mockServer .Close ()
3931
40- req := httptest .NewRequest (http .MethodGet , "/headers?url=" + mockServer . URL , nil )
32+ req := httptest .NewRequest (http .MethodGet , "/headers?url=invalid-url" , nil )
4133 rec := httptest .NewRecorder ()
42- HandleGetHeaders ().ServeHTTP (rec , req )
43-
44- assert .Equal (t , http .StatusOK , rec .Code )
45-
46- var responseBody map [string ]interface {}
47- err := json .Unmarshal (rec .Body .Bytes (), & responseBody )
48- assert .NoError (t , err )
34+ HandleGetHeaders (checks .NewHeaders (mockServer .Client ())).ServeHTTP (rec , req )
4935
50- expectedHeaders := map [string ]interface {}{
51- "Content-Type" : "application/json" ,
52- "X-Custom-Header" : "value" ,
53- }
54-
55- for key , expectedValue := range expectedHeaders {
56- assert .Equal (t , expectedValue , responseBody [key ])
57- }
36+ assert .Equal (t , http .StatusInternalServerError , rec .Code )
5837 })
5938}
0 commit comments