autobrr/internal/notification/message_builder_test.go
ze0s ae4427175f
fix(notifications): Pushover and Telegram formatting (#1362)
* fix(notifications): Pushover and Telegram formatting

* fix(notifications): html builder

* fix(notifications): escape html

* fix(notifications): escaping
2024-01-23 13:03:20 +01:00

70 lines
2.3 KiB
Go

package notification
import (
"github.com/autobrr/autobrr/internal/domain"
"github.com/stretchr/testify/assert"
"testing"
"time"
)
func TestNotificationBuilderPlainText_BuildBody(t *testing.T) {
type args struct {
payload domain.NotificationPayload
}
tests := []struct {
name string
args args
want string
}{
{
name: "build body",
args: args{payload: domain.NotificationPayload{
Subject: "",
Message: "",
Event: domain.NotificationEventPushApproved,
ReleaseName: "Movie 2024 UHD BluRay 2160p DTS-HD MA 5.1 DV HEVC HYBRID REMUX-GROUP",
Filter: "test",
Indexer: "mock",
InfoHash: "",
Size: 0,
Status: domain.ReleasePushStatusApproved,
Action: "mock",
ActionType: domain.ActionTypeQbittorrent,
ActionClient: "mock",
Rejections: nil,
Protocol: domain.ReleaseProtocolTorrent,
Implementation: domain.ReleaseImplementationIRC,
Timestamp: time.Time{},
}},
want: "New release: Movie 2024 UHD BluRay 2160p DTS-HD MA 5.1 DV HEVC HYBRID REMUX-GROUP\nStatus: Approved\nIndexer: mock\nFilter: test\nAction: QBITTORRENT: mock\nClient: mock\n",
},
{
name: "build body with rejections",
args: args{payload: domain.NotificationPayload{
Subject: "",
Message: "",
Event: domain.NotificationEventPushRejected,
ReleaseName: "Movie 2024 UHD BluRay 2160p DTS-HD MA 5.1 DV HEVC HYBRID REMUX-GROUP",
Filter: "test",
Indexer: "mock",
InfoHash: "",
Size: 0,
Status: domain.ReleasePushStatusRejected,
Action: "mock",
ActionType: domain.ActionTypeRadarr,
ActionClient: "mock",
Rejections: []string{"Item already exists"},
Protocol: domain.ReleaseProtocolTorrent,
Implementation: domain.ReleaseImplementationIRC,
Timestamp: time.Time{},
}},
want: "New release: Movie 2024 UHD BluRay 2160p DTS-HD MA 5.1 DV HEVC HYBRID REMUX-GROUP\nStatus: Rejected\nIndexer: mock\nFilter: test\nAction: RADARR: mock\nClient: mock\nRejections: Item already exists\n",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
b := &MessageBuilderPlainText{}
assert.Equal(t, tt.want, b.BuildBody(tt.args.payload))
})
}
}