@ -41,10 +41,10 @@ func TestTestReceivers(t *testing.T) {
EnableUnifiedAlerting : true ,
} )
grafanaListedAddr , stor e := testinfra . StartGrafana ( t , dir , path )
s tore. Bus = bus . GetBus ( )
grafanaListedAddr , env := testinfra . StartGrafanaEnv ( t , dir , path )
env . SQLS tore. Bus = bus . GetBus ( )
createUser ( t , s tore, models . CreateUserCommand {
createUser ( t , env . SQLS tore, models . CreateUserCommand {
DefaultOrgRole : string ( models . ROLE_EDITOR ) ,
Login : "grafana" ,
Password : "password" ,
@ -74,21 +74,17 @@ func TestTestReceivers(t *testing.T) {
EnableUnifiedAlerting : true ,
} )
grafanaListedAddr , stor e := testinfra . StartGrafana ( t , dir , path )
s tore. Bus = bus . GetBus ( )
grafanaListedAddr , env := testinfra . StartGrafanaEnv ( t , dir , path )
env . SQLS tore. Bus = bus . GetBus ( )
createUser ( t , s tore, models . CreateUserCommand {
createUser ( t , env . SQLS tore, models . CreateUserCommand {
DefaultOrgRole : string ( models . ROLE_EDITOR ) ,
Login : "grafana" ,
Password : "password" ,
} )
oldEmailBus := bus . GetHandlerCtx ( "SendEmailCommandSync" )
mockEmails := & mockEmailHandler { }
bus . AddHandler ( "" , mockEmails . sendEmailCommandHandlerSync )
t . Cleanup ( func ( ) {
bus . AddHandler ( "" , oldEmailBus )
} )
env . NotificationService . EmailHandler = mockEmails . sendEmailCommandHandlerSync
testReceiversURL := fmt . Sprintf ( "http://grafana:password@%s/api/alertmanager/grafana/config/api/v1/receivers/test" , grafanaListedAddr )
// nolint
@ -162,21 +158,17 @@ func TestTestReceivers(t *testing.T) {
EnableUnifiedAlerting : true ,
} )
grafanaListedAddr , stor e := testinfra . StartGrafana ( t , dir , path )
s tore. Bus = bus . GetBus ( )
grafanaListedAddr , env := testinfra . StartGrafanaEnv ( t , dir , path )
env . SQLS tore. Bus = bus . GetBus ( )
createUser ( t , s tore, models . CreateUserCommand {
createUser ( t , env . SQLS tore, models . CreateUserCommand {
DefaultOrgRole : string ( models . ROLE_EDITOR ) ,
Login : "grafana" ,
Password : "password" ,
} )
oldEmailBus := bus . GetHandlerCtx ( "SendEmailCommandSync" )
mockEmails := & mockEmailHandler { }
bus . AddHandler ( "" , mockEmails . sendEmailCommandHandlerSync )
t . Cleanup ( func ( ) {
bus . AddHandler ( "" , oldEmailBus )
} )
env . NotificationService . EmailHandler = mockEmails . sendEmailCommandHandlerSync
testReceiversURL := fmt . Sprintf ( "http://grafana:password@%s/api/alertmanager/grafana/config/api/v1/receivers/test" , grafanaListedAddr )
// nolint
@ -245,23 +237,19 @@ func TestTestReceivers(t *testing.T) {
EnableUnifiedAlerting : true ,
} )
grafanaListedAddr , stor e := testinfra . StartGrafana ( t , dir , path )
s tore. Bus = bus . GetBus ( )
grafanaListedAddr , env := testinfra . StartGrafanaEnv ( t , dir , path )
env . SQLS tore. Bus = bus . GetBus ( )
createUser ( t , s tore, models . CreateUserCommand {
createUser ( t , env . SQLS tore, models . CreateUserCommand {
DefaultOrgRole : string ( models . ROLE_EDITOR ) ,
Login : "grafana" ,
Password : "password" ,
} )
oldEmailBus := bus . GetHandlerCtx ( "SendEmailCommandSync" )
mockEmails := & mockEmailHandlerWithTimeout {
timeout : 5 * time . Second ,
}
bus . AddHandler ( "" , mockEmails . sendEmailCommandHandlerSync )
t . Cleanup ( func ( ) {
bus . AddHandler ( "" , oldEmailBus )
} )
env . NotificationService . EmailHandler = mockEmails . sendEmailCommandHandlerSync
testReceiversURL := fmt . Sprintf ( "http://grafana:password@%s/api/alertmanager/grafana/config/api/v1/receivers/test" , grafanaListedAddr )
req , err := http . NewRequest ( http . MethodPost , testReceiversURL , strings . NewReader ( ` {
@ -338,23 +326,19 @@ func TestTestReceivers(t *testing.T) {
EnableUnifiedAlerting : true ,
} )
grafanaListedAddr , stor e := testinfra . StartGrafana ( t , dir , path )
s tore. Bus = bus . GetBus ( )
grafanaListedAddr , env := testinfra . StartGrafanaEnv ( t , dir , path )
env . SQLS tore. Bus = bus . GetBus ( )
createUser ( t , s tore, models . CreateUserCommand {
createUser ( t , env . SQLS tore, models . CreateUserCommand {
DefaultOrgRole : string ( models . ROLE_EDITOR ) ,
Login : "grafana" ,
Password : "password" ,
} )
oldEmailBus := bus . GetHandlerCtx ( "SendEmailCommandSync" )
mockEmails := & mockEmailHandlerWithTimeout {
timeout : 5 * time . Second ,
}
bus . AddHandler ( "" , mockEmails . sendEmailCommandHandlerSync )
t . Cleanup ( func ( ) {
bus . AddHandler ( "" , oldEmailBus )
} )
env . NotificationService . EmailHandler = mockEmails . sendEmailCommandHandlerSync
testReceiversURL := fmt . Sprintf ( "http://grafana:password@%s/api/alertmanager/grafana/config/api/v1/receivers/test" , grafanaListedAddr )
req , err := http . NewRequest ( http . MethodPost , testReceiversURL , strings . NewReader ( ` {
@ -457,21 +441,17 @@ func TestTestReceiversAlertCustomization(t *testing.T) {
EnableUnifiedAlerting : true ,
} )
grafanaListedAddr , stor e := testinfra . StartGrafana ( t , dir , path )
s tore. Bus = bus . GetBus ( )
grafanaListedAddr , env := testinfra . StartGrafanaEnv ( t , dir , path )
env . SQLS tore. Bus = bus . GetBus ( )
createUser ( t , s tore, models . CreateUserCommand {
createUser ( t , env . SQLS tore, models . CreateUserCommand {
DefaultOrgRole : string ( models . ROLE_EDITOR ) ,
Login : "grafana" ,
Password : "password" ,
} )
oldEmailBus := bus . GetHandlerCtx ( "SendEmailCommandSync" )
mockEmails := & mockEmailHandler { }
bus . AddHandler ( "" , mockEmails . sendEmailCommandHandlerSync )
t . Cleanup ( func ( ) {
bus . AddHandler ( "" , oldEmailBus )
} )
env . NotificationService . EmailHandler = mockEmails . sendEmailCommandHandlerSync
testReceiversURL := fmt . Sprintf ( "http://grafana:password@%s/api/alertmanager/grafana/config/api/v1/receivers/test" , grafanaListedAddr )
// nolint
@ -556,21 +536,17 @@ func TestTestReceiversAlertCustomization(t *testing.T) {
EnableUnifiedAlerting : true ,
} )
grafanaListedAddr , stor e := testinfra . StartGrafana ( t , dir , path )
s tore. Bus = bus . GetBus ( )
grafanaListedAddr , env := testinfra . StartGrafanaEnv ( t , dir , path )
env . SQLS tore. Bus = bus . GetBus ( )
createUser ( t , s tore, models . CreateUserCommand {
createUser ( t , env . SQLS tore, models . CreateUserCommand {
DefaultOrgRole : string ( models . ROLE_EDITOR ) ,
Login : "grafana" ,
Password : "password" ,
} )
oldEmailBus := bus . GetHandlerCtx ( "SendEmailCommandSync" )
mockEmails := & mockEmailHandler { }
bus . AddHandler ( "" , mockEmails . sendEmailCommandHandlerSync )
t . Cleanup ( func ( ) {
bus . AddHandler ( "" , oldEmailBus )
} )
env . NotificationService . EmailHandler = mockEmails . sendEmailCommandHandlerSync
testReceiversURL := fmt . Sprintf ( "http://grafana:password@%s/api/alertmanager/grafana/config/api/v1/receivers/test" , grafanaListedAddr )
// nolint
@ -650,21 +626,17 @@ func TestTestReceiversAlertCustomization(t *testing.T) {
EnableUnifiedAlerting : true ,
} )
grafanaListedAddr , stor e := testinfra . StartGrafana ( t , dir , path )
s tore. Bus = bus . GetBus ( )
grafanaListedAddr , env := testinfra . StartGrafanaEnv ( t , dir , path )
env . SQLS tore. Bus = bus . GetBus ( )
createUser ( t , s tore, models . CreateUserCommand {
createUser ( t , env . SQLS tore, models . CreateUserCommand {
DefaultOrgRole : string ( models . ROLE_EDITOR ) ,
Login : "grafana" ,
Password : "password" ,
} )
oldEmailBus := bus . GetHandlerCtx ( "SendEmailCommandSync" )
mockEmails := & mockEmailHandler { }
bus . AddHandler ( "" , mockEmails . sendEmailCommandHandlerSync )
t . Cleanup ( func ( ) {
bus . AddHandler ( "" , oldEmailBus )
} )
env . NotificationService . EmailHandler = mockEmails . sendEmailCommandHandlerSync
testReceiversURL := fmt . Sprintf ( "http://grafana:password@%s/api/alertmanager/grafana/config/api/v1/receivers/test" , grafanaListedAddr )
// nolint
@ -745,8 +717,8 @@ func TestNotificationChannels(t *testing.T) {
DisableAnonymous : true ,
} )
grafanaListedAddr , s := testinfra . StartGrafana ( t , dir , path )
s . Bus = bus . GetBus ( )
grafanaListedAddr , env := testinfra . StartGrafanaEnv ( t , dir , path )
env . SQLStore . Bus = bus . GetBus ( )
mockChannel := newMockNotificationChannel ( t , grafanaListedAddr )
amConfig := getAlertmanagerConfig ( mockChannel . server . Addr )
@ -757,13 +729,11 @@ func TestNotificationChannels(t *testing.T) {
channels . TelegramAPIURL , channels . PushoverEndpoint , channels . GetBoundary ,
channels . LineNotifyURL , channels . ThreemaGwBaseURL
originalTemplate := channels . DefaultTemplateString
originalEmailBus := bus . GetHandlerCtx ( "SendEmailCommandSync" )
t . Cleanup ( func ( ) {
channels . SlackAPIEndpoint , channels . PagerdutyEventAPIURL ,
channels . TelegramAPIURL , channels . PushoverEndpoint , channels . GetBoundary ,
channels . LineNotifyURL , channels . ThreemaGwBaseURL = os , opa , ot , opu , ogb , ol , oth
channels . DefaultTemplateString = originalTemplate
bus . AddHandler ( "" , originalEmailBus )
} )
channels . DefaultTemplateString = channels . TemplateForTestsString
channels . SlackAPIEndpoint = fmt . Sprintf ( "http://%s/slack_recvX/slack_testX" , mockChannel . server . Addr )
@ -773,10 +743,19 @@ func TestNotificationChannels(t *testing.T) {
channels . LineNotifyURL = fmt . Sprintf ( "http://%s/line_recv/line_test" , mockChannel . server . Addr )
channels . ThreemaGwBaseURL = fmt . Sprintf ( "http://%s/threema_recv/threema_test" , mockChannel . server . Addr )
channels . GetBoundary = func ( ) string { return "abcd" }
bus . AddHandler ( "" , mockEmail . sendEmailCommandHandlerSync )
env . NotificationService . EmailHandler = mockEmail . sendEmailCommandHandlerSync
// As we are using a NotificationService mock here, but he test expects real NotificationService -
// we try to issue a real POST request here
env . NotificationService . WebhookHandler = func ( _ context . Context , cmd * models . SendWebhookSync ) error {
if res , err := http . Post ( cmd . Url , "" , strings . NewReader ( cmd . Body ) ) ; err == nil {
_ = res . Body . Close ( )
}
return nil
}
// Create a user to make authenticated requests
createUser ( t , s , models . CreateUserCommand {
createUser ( t , env . SQLStore , models . CreateUserCommand {
DefaultOrgRole : string ( models . ROLE_EDITOR ) ,
Password : "password" ,
Login : "grafana" ,
@ -793,7 +772,7 @@ func TestNotificationChannels(t *testing.T) {
{
// Create the namespace we'll save our alerts to.
_ , err := createFolder ( t , s , 0 , "default" )
_ , err := createFolder ( t , env . SQLStore , 0 , "default" )
require . NoError ( t , err )
// Post the alertmanager config.