mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
| package alerting
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 	"fmt"
 | |
| 	"io"
 | |
| 	"net/http"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/require"
 | |
| 
 | |
| 	"github.com/grafana/grafana/pkg/services/ngalert/notifier/channels_config"
 | |
| 	"github.com/grafana/grafana/pkg/services/org"
 | |
| 	"github.com/grafana/grafana/pkg/services/user"
 | |
| 	"github.com/grafana/grafana/pkg/tests/testinfra"
 | |
| )
 | |
| 
 | |
| func TestIntegrationAvailableChannels(t *testing.T) {
 | |
| 	testinfra.SQLiteIntegrationTest(t)
 | |
| 
 | |
| 	dir, path := testinfra.CreateGrafDir(t, testinfra.GrafanaOpts{
 | |
| 		DisableLegacyAlerting: true,
 | |
| 		EnableUnifiedAlerting: true,
 | |
| 		DisableAnonymous:      true,
 | |
| 		AppModeProduction:     true,
 | |
| 	})
 | |
| 
 | |
| 	grafanaListedAddr, env := testinfra.StartGrafanaEnv(t, dir, path)
 | |
| 
 | |
| 	// Create a user to make authenticated requests
 | |
| 	createUser(t, env.SQLStore, env.Cfg, user.CreateUserCommand{
 | |
| 		DefaultOrgRole: string(org.RoleEditor),
 | |
| 		Password:       "password",
 | |
| 		Login:          "grafana",
 | |
| 	})
 | |
| 
 | |
| 	alertsURL := fmt.Sprintf("http://grafana:password@%s/api/alert-notifiers", grafanaListedAddr)
 | |
| 	// nolint:gosec
 | |
| 	resp, err := http.Get(alertsURL)
 | |
| 	require.NoError(t, err)
 | |
| 	t.Cleanup(func() {
 | |
| 		err := resp.Body.Close()
 | |
| 		require.NoError(t, err)
 | |
| 	})
 | |
| 	b, err := io.ReadAll(resp.Body)
 | |
| 	require.NoError(t, err)
 | |
| 	require.Equal(t, 200, resp.StatusCode)
 | |
| 
 | |
| 	expNotifiers := channels_config.GetAvailableNotifiers()
 | |
| 	expJson, err := json.Marshal(expNotifiers)
 | |
| 	require.NoError(t, err)
 | |
| 	require.Equal(t, string(expJson), string(b))
 | |
| }
 |