@@ -14,21 +14,25 @@ import (
1414 "github.com/stretchr/testify/require"
1515)
1616
17- func TestInterceptor_WithHistogram (t * testing.T ) {
18- reg := prom .NewRegistry ()
19- opts := []MetricsOption {
17+ var (
18+ testMetricOptions = []MetricsOption {
2019 WithHistogram (true ),
2120 WithNamespace ("namespace" ),
2221 WithSubsystem ("subsystem" ),
2322 WithConstLabels (prom.Labels {"component" : "foo" }),
2423 WithHistogramBuckets ([]float64 {1 , 5 }),
2524 }
26- clientMetrics := NewClientMetrics (opts ... )
27- serverMetrics := NewServerMetrics (opts ... )
25+ )
26+
27+ func TestInterceptor_WithClient_WithServer_Histogram (t * testing.T ) {
28+ reg := prom .NewRegistry ()
29+
30+ clientMetrics := NewClientMetrics (testMetricOptions ... )
31+ serverMetrics := NewServerMetrics (testMetricOptions ... )
2832
2933 reg .MustRegister (clientMetrics , serverMetrics )
3034
31- intereceptor := NewInterceptor (clientMetrics , serverMetrics )
35+ intereceptor := NewInterceptor (WithClientMetrics ( clientMetrics ), WithServerMetrics ( serverMetrics ) )
3236
3337 _ , handler := greetconnect .NewGreetServiceHandler (greetconnect.UnimplementedGreetServiceHandler {}, connect .WithInterceptors (intereceptor ))
3438 srv := httptest .NewServer (handler )
@@ -54,19 +58,37 @@ func TestInterceptor_WithHistogram(t *testing.T) {
5458 require .Equal (t , len (expectedMetrics ), count )
5559}
5660
57- func TestInterceptor_WithoutHistogram (t * testing.T ) {
58- reg := prom .NewRegistry ()
59- opts := []MetricsOption {
60- WithNamespace ("namespace" ),
61- WithSubsystem ("subsystem" ),
62- WithConstLabels (prom.Labels {"component" : "foo" }),
61+ func TestInterceptor_Default (t * testing.T ) {
62+ intereceptor := NewInterceptor ()
63+
64+ _ , handler := greetconnect .NewGreetServiceHandler (greetconnect.UnimplementedGreetServiceHandler {}, connect .WithInterceptors (intereceptor ))
65+ srv := httptest .NewServer (handler )
66+
67+ client := greetconnect .NewGreetServiceClient (http .DefaultClient , srv .URL , connect .WithInterceptors (intereceptor ))
68+ _ , err := client .Greet (context .Background (), connect .NewRequest (& greet.GreetRequest {
69+ Name : "elza" ,
70+ }))
71+ require .Error (t , err )
72+ require .Equal (t , connect .CodeOf (err ), connect .CodeUnimplemented )
73+
74+ expectedMetrics := []string {
75+ "connect_client_handled_total" ,
76+ "connect_client_started_total" ,
77+
78+ "connect_server_handled_total" ,
79+ "connect_server_started_total" ,
6380 }
64- clientMetrics := NewClientMetrics (opts ... )
65- serverMetrics := NewServerMetrics (opts ... )
81+ count , err := testutil .GatherAndCount (prom .DefaultGatherer , expectedMetrics ... )
82+ require .NoError (t , err )
83+ require .Equal (t , len (expectedMetrics ), count )
84+ }
6685
67- reg .MustRegister (clientMetrics , serverMetrics )
86+ func TestInterceptor_WithClientMetrics (t * testing.T ) {
87+ reg := prom .NewRegistry ()
88+ clientMetrics := NewClientMetrics (testMetricOptions ... )
89+ require .NoError (t , reg .Register (clientMetrics ))
6890
69- intereceptor := NewInterceptor (clientMetrics , serverMetrics )
91+ intereceptor := NewInterceptor (WithClientMetrics ( clientMetrics ) )
7092
7193 _ , handler := greetconnect .NewGreetServiceHandler (greetconnect.UnimplementedGreetServiceHandler {}, connect .WithInterceptors (intereceptor ))
7294 srv := httptest .NewServer (handler )
@@ -81,7 +103,30 @@ func TestInterceptor_WithoutHistogram(t *testing.T) {
81103 expectedMetrics := []string {
82104 "namespace_subsystem_connect_client_handled_total" ,
83105 "namespace_subsystem_connect_client_started_total" ,
106+ }
107+ count , err := testutil .GatherAndCount (reg , expectedMetrics ... )
108+ require .NoError (t , err )
109+ require .Equal (t , len (expectedMetrics ), count )
110+ }
111+
112+ func TestInterceptor_WithServerMetrics (t * testing.T ) {
113+ reg := prom .NewRegistry ()
114+ serverMetrics := NewServerMetrics (testMetricOptions ... )
115+ require .NoError (t , reg .Register (serverMetrics ))
116+
117+ intereceptor := NewInterceptor (WithServerMetrics (serverMetrics ))
84118
119+ _ , handler := greetconnect .NewGreetServiceHandler (greetconnect.UnimplementedGreetServiceHandler {}, connect .WithInterceptors (intereceptor ))
120+ srv := httptest .NewServer (handler )
121+
122+ client := greetconnect .NewGreetServiceClient (http .DefaultClient , srv .URL , connect .WithInterceptors (intereceptor ))
123+ _ , err := client .Greet (context .Background (), connect .NewRequest (& greet.GreetRequest {
124+ Name : "elza" ,
125+ }))
126+ require .Error (t , err )
127+ require .Equal (t , connect .CodeOf (err ), connect .CodeUnimplemented )
128+
129+ expectedMetrics := []string {
85130 "namespace_subsystem_connect_server_handled_total" ,
86131 "namespace_subsystem_connect_server_started_total" ,
87132 }
0 commit comments