(t *testing.T)
| 78 | } |
| 79 | |
| 80 | func TestMiddleware(t *testing.T) { |
| 81 | onLogCalled := 0 |
| 82 | |
| 83 | tl := &testLogger{ |
| 84 | onLog: func(ent *requestlog.Entry) { |
| 85 | onLogCalled++ |
| 86 | if ent.TraceID.String() == "" { |
| 87 | t.Error("TraceID is empty") |
| 88 | } |
| 89 | if ent.SpanID.String() == "" { |
| 90 | t.Error("SpanID is empty") |
| 91 | } |
| 92 | }, |
| 93 | } |
| 94 | |
| 95 | td := new(testDriver) |
| 96 | s := New(http.NotFoundHandler(), &Options{Driver: td, RequestLogger: tl}) |
| 97 | err := s.ListenAndServe(":8080") |
| 98 | if err != nil { |
| 99 | t.Fatal(err) |
| 100 | } |
| 101 | |
| 102 | req, err := http.NewRequest("GET", "/", nil) |
| 103 | if err != nil { |
| 104 | t.Fatal(err) |
| 105 | } |
| 106 | |
| 107 | rr := httptest.NewRecorder() |
| 108 | td.handler.ServeHTTP(rr, req) |
| 109 | if onLogCalled != 1 { |
| 110 | t.Fatal("logging middleware was not called") |
| 111 | } |
| 112 | |
| 113 | // Repeat with TLS. |
| 114 | err = s.ListenAndServeTLS(":8081", certFile, keyFile) |
| 115 | if err != nil { |
| 116 | t.Fatal(err) |
| 117 | } |
| 118 | |
| 119 | req, err = http.NewRequest("GET", "/", nil) |
| 120 | if err != nil { |
| 121 | t.Fatal(err) |
| 122 | } |
| 123 | td.handler.ServeHTTP(rr, req) |
| 124 | if onLogCalled != 2 { |
| 125 | t.Fatal("logging middleware was not called for TLS") |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | type testDriverNoTLS string |
| 130 |
nothing calls this directly
no test coverage detected