@ -193,6 +193,20 @@ func TestForkedAlertmanager_ModeRemoteSecondary(t *testing.T) {
_ , err = forked . TestReceivers ( ctx , apimodels . TestReceiversConfigBodyParams { } )
require . ErrorIs ( tt , expErr , err )
} )
t . Run ( "TestTemplate" , func ( tt * testing . T ) {
// TestTemplate should be called only in the internal Alertmanager.
internal , _ , forked := genTestAlertmanagers ( tt , modeRemoteSecondary )
internal . EXPECT ( ) . TestTemplate ( mock . Anything , mock . Anything ) . Return ( nil , nil ) . Once ( )
_ , err := forked . TestTemplate ( ctx , apimodels . TestTemplatesConfigBodyParams { } )
require . NoError ( tt , err )
// If there's an error in the internal Alertmanager, it should be returned.
internal , _ , forked = genTestAlertmanagers ( tt , modeRemoteSecondary )
internal . EXPECT ( ) . TestTemplate ( mock . Anything , mock . Anything ) . Return ( nil , expErr ) . Once ( )
_ , err = forked . TestTemplate ( ctx , apimodels . TestTemplatesConfigBodyParams { } )
require . ErrorIs ( tt , expErr , err )
} )
}
func TestForkedAlertmanager_ModeRemotePrimary ( t * testing . T ) {
@ -368,6 +382,20 @@ func TestForkedAlertmanager_ModeRemotePrimary(t *testing.T) {
_ , err = forked . TestReceivers ( ctx , apimodels . TestReceiversConfigBodyParams { } )
require . ErrorIs ( tt , expErr , err )
} )
t . Run ( "TestTemplate" , func ( tt * testing . T ) {
// TestTemplate should be called only in the remote Alertmanager.
_ , remote , forked := genTestAlertmanagers ( tt , modeRemotePrimary )
remote . EXPECT ( ) . TestTemplate ( mock . Anything , mock . Anything ) . Return ( nil , nil ) . Once ( )
_ , err := forked . TestTemplate ( ctx , apimodels . TestTemplatesConfigBodyParams { } )
require . NoError ( tt , err )
// If there's an error in the remote Alertmanager, it should be returned.
_ , remote , forked = genTestAlertmanagers ( tt , modeRemotePrimary )
remote . EXPECT ( ) . TestTemplate ( mock . Anything , mock . Anything ) . Return ( nil , expErr ) . Once ( )
_ , err = forked . TestTemplate ( ctx , apimodels . TestTemplatesConfigBodyParams { } )
require . ErrorIs ( tt , expErr , err )
} )
}
func genTestAlertmanagers ( t * testing . T , mode int ) ( * alertmanager_mock . AlertmanagerMock , * alertmanager_mock . AlertmanagerMock , notifier . Alertmanager ) {
t . Helper ( )