-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathrouter_test.go
More file actions
33 lines (27 loc) · 910 Bytes
/
router_test.go
File metadata and controls
33 lines (27 loc) · 910 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package main
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/stretchr/testify/require"
"github.com/stellar/go-stellar-sdk/support/log"
)
func TestIPLogging(t *testing.T) {
done := log.DefaultLogger.StartTest(log.InfoLevel)
mux := newMux(Config{UseCloudflareIP: true})
mux.Get("/", func(w http.ResponseWriter, request *http.Request) {
w.WriteHeader(http.StatusOK)
})
recorder := httptest.NewRecorder()
request := httptest.NewRequest("GET", "/", nil)
ipAddress := "255.128.255.128"
request.Header.Set("CF-Connecting-IP", ipAddress)
mux.ServeHTTP(recorder, request)
require.Equal(t, http.StatusOK, recorder.Code)
logged := done()
require.Len(t, logged, 2)
require.Equal(t, "starting request", logged[0].Message)
require.Equal(t, ipAddress, logged[0].Data["ip"])
require.Equal(t, "finished request", logged[1].Message)
require.Equal(t, ipAddress, logged[1].Data["ip"])
}