11package collectors
22
3-
43import (
4+ "encoding/json"
55 "fmt"
6- "testing"
7- "regexp"
8- "strings"
96 "net/http"
107 "net/http/httptest"
11- "encoding/json"
128 "os"
13-
14- "purestorage/fa-openmetrics-exporter/internal/rest-client"
9+ client "purestorage/fa-openmetrics-exporter/internal/rest-client"
10+ "regexp"
11+ "strings"
12+ "testing"
1513)
1614
1715func TestAlertsCollector (t * testing.T ) {
@@ -24,38 +22,39 @@ func TestAlertsCollector(t *testing.T) {
2422 json .Unmarshal (ropen , & aopen )
2523 json .Unmarshal (rall , & aall )
2624 server := httptest .NewTLSServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
27- urlall := regexp .MustCompile (`^/api/([0-9]+.[0-9]+)?/alerts$` )
28- urlopen := regexp .MustCompile (`^/api/([0-9]+.[0-9]+)?/alerts\?filter=state%3D%27open%27$` )
29- if r .URL .Path == "/api/api_version" {
30- w .Header ().Set ("Content-Type" , "application/json" )
31- w .WriteHeader (http .StatusOK )
25+ urlall := regexp .MustCompile (`^/api/([0-9]+.[0-9]+)?/alerts$` )
26+ urlopen := regexp .MustCompile (`^/api/([0-9]+.[0-9]+)?/alerts\?filter=state%3D%27open%27$` )
27+ if r .URL .Path == "/api/api_version" {
28+ w .Header ().Set ("Content-Type" , "application/json" )
29+ w .WriteHeader (http .StatusOK )
3230 w .Write ([]byte (vers ))
33- } else if urlopen .MatchString (r .URL .Path + "?" + r .URL .RawQuery ) {
31+ } else if urlopen .MatchString (r .URL .Path + "?" + r .URL .RawQuery ) {
3432 w .Header ().Set ("x-auth-token" , "faketoken" )
3533 w .Header ().Set ("Content-Type" , "application/json" )
3634 w .WriteHeader (http .StatusOK )
3735 w .Write ([]byte (ropen ))
38- } else if urlall .MatchString (r .URL .Path ) {
36+ } else if urlall .MatchString (r .URL .Path ) {
3937 w .Header ().Set ("x-auth-token" , "faketoken" )
4038 w .Header ().Set ("Content-Type" , "application/json" )
4139 w .WriteHeader (http .StatusOK )
4240 w .Write ([]byte (rall ))
4341 }
44- }))
45- endp := strings .Split (server .URL , "/" )
46- e := endp [len (endp )- 1 ]
47- al := make (map [string ]float64 )
48- for _ , a := range aopen .Items {
49- al [fmt .Sprintf ("%s,%s" , a .ComponentType , a .Severity )] += 1
50- }
42+ }))
43+ endp := strings .Split (server .URL , "/" )
44+ e := endp [len (endp )- 1 ]
45+ al := make (map [string ]float64 )
46+ for _ , a := range aopen .Items {
47+ al [fmt .Sprintf ("%s,%s" , a .ComponentType , a .Severity , a . Created , a . Name , a . Code , a . Summary , a . Issue )] += 1
48+ }
5149 want := make (map [string ]bool )
52- for a , n := range al {
53- alert := strings .Split (a , "," )
54- // want[fmt.Sprintf("label:{name:\"component_type\" value:\"%s\"} label:{name:\"severity\" value:\"%s\"} gauge:{value:%g}", alert[0], alert[1], n)] = true
55- want [fmt .Sprintf ("label:{name:\" component_type\" value:\" %s\" } label:{name:\" severity\" value:\" %s\" } gauge:{value:%g}" , alert [0 ], alert [1 ], n )] = true
50+ for a , n := range al {
51+ alert := strings .Split (a , "," )
52+ // want[fmt.Sprintf("label:{name:\"component_type\" value:\"%s\"} label:{name:\"severity\" value:\"%s\"} gauge:{value:%g}", alert[0], alert[1], n)] = true
53+ // want[fmt.Sprintf("label:{name:\"component_type\" value:\"%s\"} label:{name:\"severity\" value:\"%s\"} gauge:{value:%g}", alert[0], alert[1], n)] = true
54+ want [fmt .Sprintf ("label:{name:\" component_type\" value:\" %s\" } label:{name:\" severity\" value:\" %s\" } gauge:{value:%g}" , alert [0 ], alert [1 ], alert [2 ], alert [3 ], alert [4 ], alert [5 ], alert [6 ], n )] = true
5655 }
57- c := client .NewRestClient (e , "fake-api-token" , "latest" , false )
56+ c := client .NewRestClient (e , "fake-api-token" , "latest" , false )
5857 ac := NewAlertsCollector (c )
59- metricsCheck (t , ac , want )
60- server .Close ()
58+ metricsCheck (t , ac , want )
59+ server .Close ()
6160}
0 commit comments