1
1
package handlers
2
2
3
3
import (
4
- "encoding/json"
5
4
"net/http"
6
5
"net/http/httptest"
7
6
"testing"
@@ -10,21 +9,16 @@ import (
10
9
)
11
10
12
11
func TestHandleGetIP (t * testing.T ) {
13
- req := httptest .NewRequest ("GET" , "/get-ip?url=example.com" , nil )
14
- rec := httptest .NewRecorder ()
15
- HandleGetIP ().ServeHTTP (rec , req )
12
+ t .Parallel ()
16
13
17
- assert .Equal (t , http .StatusOK , rec .Code )
14
+ t .Run ("missing URL parameter" , func (t * testing.T ) {
15
+ t .Parallel ()
16
+ req := httptest .NewRequest (http .MethodGet , "/get-ip" , nil )
17
+ rec := httptest .NewRecorder ()
18
18
19
- var response map [string ]interface {}
20
- err := json .Unmarshal (rec .Body .Bytes (), & response )
21
- assert .NoError (t , err )
19
+ HandleGetIP (nil ).ServeHTTP (rec , req )
22
20
23
- ip , ok := response ["ip" ].(string )
24
- assert .True (t , ok , "IP address not found in response" )
25
- assert .NotEmpty (t , ip , "IP address is empty" )
26
-
27
- family , ok := response ["family" ].(float64 )
28
- assert .True (t , ok , "Family field not found in response" )
29
- assert .Equal (t , float64 (4 ), family , "Family field should be 4" )
21
+ assert .Equal (t , http .StatusBadRequest , rec .Code )
22
+ assert .JSONEq (t , `{"error": "missing URL parameter"}` , rec .Body .String ())
23
+ })
30
24
}
0 commit comments