2021-05-04 17:28:39 +05:30
|
|
|
package alerting
|
|
|
|
|
|
|
|
|
|
import (
|
2022-02-23 14:33:23 -08:00
|
|
|
"encoding/json"
|
2021-05-04 17:28:39 +05:30
|
|
|
"fmt"
|
2022-08-10 13:37:51 +00:00
|
|
|
"io"
|
2021-05-04 17:28:39 +05:30
|
|
|
"net/http"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
|
2022-07-20 19:58:36 +02:00
|
|
|
"github.com/grafana/grafana/pkg/services/ngalert/notifier/channels_config"
|
2022-08-10 11:56:48 +02:00
|
|
|
"github.com/grafana/grafana/pkg/services/org"
|
2022-06-28 14:32:25 +02:00
|
|
|
"github.com/grafana/grafana/pkg/services/user"
|
2021-05-04 17:28:39 +05:30
|
|
|
"github.com/grafana/grafana/pkg/tests/testinfra"
|
|
|
|
|
)
|
|
|
|
|
|
2022-12-09 08:11:56 +01:00
|
|
|
func TestIntegrationAvailableChannels(t *testing.T) {
|
|
|
|
|
testinfra.SQLiteIntegrationTest(t)
|
|
|
|
|
|
2021-05-04 17:28:39 +05:30
|
|
|
dir, path := testinfra.CreateGrafDir(t, testinfra.GrafanaOpts{
|
2021-09-29 17:16:40 +03:00
|
|
|
DisableLegacyAlerting: true,
|
|
|
|
|
EnableUnifiedAlerting: true,
|
|
|
|
|
DisableAnonymous: true,
|
2022-02-09 10:26:06 +01:00
|
|
|
AppModeProduction: true,
|
2021-05-04 17:28:39 +05:30
|
|
|
})
|
|
|
|
|
|
2021-08-25 15:11:22 +02:00
|
|
|
grafanaListedAddr, store := testinfra.StartGrafana(t, dir, path)
|
2021-05-04 17:28:39 +05:30
|
|
|
|
2021-05-13 22:58:19 +05:30
|
|
|
// Create a user to make authenticated requests
|
2022-06-28 14:32:25 +02:00
|
|
|
createUser(t, store, user.CreateUserCommand{
|
2022-08-10 11:56:48 +02:00
|
|
|
DefaultOrgRole: string(org.RoleEditor),
|
2021-08-12 16:04:09 +03:00
|
|
|
Password: "password",
|
|
|
|
|
Login: "grafana",
|
|
|
|
|
})
|
2021-05-13 22:58:19 +05:30
|
|
|
|
|
|
|
|
alertsURL := fmt.Sprintf("http://grafana:password@%s/api/alert-notifiers", grafanaListedAddr)
|
2021-05-04 17:28:39 +05:30
|
|
|
// nolint:gosec
|
|
|
|
|
resp, err := http.Get(alertsURL)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
t.Cleanup(func() {
|
|
|
|
|
err := resp.Body.Close()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
})
|
2022-08-10 13:37:51 +00:00
|
|
|
b, err := io.ReadAll(resp.Body)
|
2021-05-04 17:28:39 +05:30
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.Equal(t, 200, resp.StatusCode)
|
|
|
|
|
|
2022-07-20 19:58:36 +02:00
|
|
|
expNotifiers := channels_config.GetAvailableNotifiers()
|
2022-02-23 14:33:23 -08:00
|
|
|
expJson, err := json.Marshal(expNotifiers)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.Equal(t, string(expJson), string(b))
|
|
|
|
|
}
|