Files
kopia/notification/sender/jsonsender/jsonsender_test.go
2025-04-26 13:01:20 -07:00

51 lines
1.2 KiB
Go

package jsonsender_test
import (
"bytes"
"strings"
"testing"
"github.com/stretchr/testify/require"
"github.com/kopia/kopia/internal/testlogging"
"github.com/kopia/kopia/notification"
"github.com/kopia/kopia/notification/sender"
"github.com/kopia/kopia/notification/sender/jsonsender"
)
func TestJSONSender(t *testing.T) {
ctx := testlogging.Context(t)
var buf bytes.Buffer
p := jsonsender.NewJSONSender("NOTIFICATION:", &buf, notification.SeverityWarning)
m1 := &sender.Message{
Subject: "test subject 1",
Body: "test body 1",
Severity: notification.SeverityVerbose,
}
m2 := &sender.Message{
Subject: "test subject 2",
Body: "test body 2",
Severity: notification.SeverityWarning,
}
m3 := &sender.Message{
Subject: "test subject 3",
Body: "test body 3",
Severity: notification.SeverityError,
}
require.NoError(t, p.Send(ctx, m1)) // will be ignored
require.NoError(t, p.Send(ctx, m2))
require.NoError(t, p.Send(ctx, m3))
lines := strings.Split(strings.TrimSpace(buf.String()), "\n")
require.Equal(t,
[]string{
"NOTIFICATION:{\"subject\":\"test subject 2\",\"severity\":10,\"body\":\"test body 2\"}",
"NOTIFICATION:{\"subject\":\"test subject 3\",\"severity\":20,\"body\":\"test body 3\"}",
}, lines)
}