@@ -765,6 +765,66 @@ func TestGetStats_NoStreamEndpoint(t *testing.T) {
765
765
}
766
766
}
767
767
768
+ func TestGetStats_Connections (t * testing.T ) {
769
+ t .Parallel ()
770
+ ts := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
771
+ switch {
772
+ case r .RequestURI == "/" :
773
+ _ , err := w .Write ([]byte (`[4, 5, 6, 7, 8, 9]` ))
774
+ if err != nil {
775
+ t .Fatalf ("unexpected error: %v" , err )
776
+ }
777
+ case r .RequestURI == "/8/" :
778
+ _ , err := w .Write ([]byte (`["nginx","processes","connections","slabs","http","resolvers","ssl","workers"]` ))
779
+ if err != nil {
780
+ t .Fatalf ("unexpected error: %v" , err )
781
+ }
782
+ case strings .HasPrefix (r .RequestURI , "/8/connections" ):
783
+ _ , err := w .Write ([]byte (`{
784
+ "active": -1,
785
+ "idle": 3,
786
+ "accepted": 5,
787
+ "dropped": 2
788
+ }` ))
789
+ if err != nil {
790
+ t .Fatalf ("unexpected error: %v" , err )
791
+ }
792
+ default :
793
+ _ , err := w .Write ([]byte (`{}` ))
794
+ if err != nil {
795
+ t .Fatalf ("unexpected error: %v" , err )
796
+ }
797
+ }
798
+ }))
799
+
800
+ defer ts .Close ()
801
+
802
+ // Test creating a new client with a supported API version on the server
803
+ client , err := NewNginxClient (ts .URL , WithAPIVersion (8 ), WithCheckAPI ())
804
+ if err != nil {
805
+ t .Fatalf ("unexpected error: %v" , err )
806
+ }
807
+ if client == nil {
808
+ t .Fatalf ("client is nil" )
809
+ }
810
+
811
+ stats , err := client .GetStats (context .Background ())
812
+ if err != nil {
813
+ t .Fatalf ("unexpected error: %v" , err )
814
+ }
815
+
816
+ testStats := Connections {
817
+ Accepted : 5 ,
818
+ Dropped : 2 ,
819
+ Active : - 1 ,
820
+ Idle : 3 ,
821
+ }
822
+
823
+ if ! reflect .DeepEqual (stats .Connections , testStats ) {
824
+ t .Fatalf ("Connection stats: expected %v, actual %v" , testStats , stats .Connections )
825
+ }
826
+ }
827
+
768
828
func TestGetStats_SSL (t * testing.T ) {
769
829
t .Parallel ()
770
830
ts := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
0 commit comments