Alerting: Various fixes for the alerts endpoint (#33182)

A set of fixes for the GET alert and groups endpoints.

- First, is the fact that the default values where not being for the query params. I've introduced a new method in the Grafana context that allow us to do this.
- Second, is the fact that alerts were never being transitioned to active. To my surprise this is actually done by the inhibitor in the pipeline - if an alert is not muted, or inhibited then it's active.
- Third, I have added an integration test to cover for regressions.

Signed-off-by: Josue Abreu <josue@grafana.com>
This commit is contained in:
gotjosh
2021-04-21 11:34:42 +01:00
committed by GitHub
parent 1c838f5872
commit 23c7e7ab60
6 changed files with 168 additions and 17 deletions

View File

@@ -0,0 +1,41 @@
package models
import (
"net/http"
"testing"
"github.com/stretchr/testify/require"
"gopkg.in/macaron.v1"
)
func TestQueryBoolWithDefault(t *testing.T) {
tc := map[string]struct {
url string
defaultValue bool
expected bool
}{
"with no value specified, the default value is returned": {
url: "http://localhost/api/v2/alerts",
defaultValue: true,
expected: true,
},
"with a value specified, the default value is overridden": {
url: "http://localhost/api/v2/alerts?silenced=false",
defaultValue: true,
expected: false,
},
}
for name, tt := range tc {
t.Run(name, func(t *testing.T) {
req, err := http.NewRequest("GET", tt.url, nil)
require.NoError(t, err)
r := ReqContext{
Context: &macaron.Context{
Req: macaron.Request{Request: req},
},
}
require.Equal(t, tt.expected, r.QueryBoolWithDefault("silenced", tt.defaultValue))
})
}
}