.
This commit is contained in:
parent
e26e25b566
commit
be2843ca80
65 changed files with 187 additions and 39 deletions
23
packages/arrtrix/pkg/arr/catalog_test.go
Normal file
23
packages/arrtrix/pkg/arr/catalog_test.go
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
package arr
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestParseContentType(t *testing.T) {
|
||||
contentType, err := ParseContentType("Movies")
|
||||
if err != nil {
|
||||
t.Fatalf("ParseContentType returned error: %v", err)
|
||||
}
|
||||
if contentType != ContentTypeMovies {
|
||||
t.Fatalf("expected movies content type, got %q", contentType)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseEventType(t *testing.T) {
|
||||
eventType, err := ParseEventType(ContentTypeSeries, "download")
|
||||
if err != nil {
|
||||
t.Fatalf("ParseEventType returned error: %v", err)
|
||||
}
|
||||
if eventType != "Download" {
|
||||
t.Fatalf("expected Download event type, got %q", eventType)
|
||||
}
|
||||
}
|
||||
23
packages/arrtrix/pkg/connector/config_test.go
Normal file
23
packages/arrtrix/pkg/connector/config_test.go
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
package connector
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestValidateConfigRejectsPartialMoviesConfig(t *testing.T) {
|
||||
conn := &ArrtrixConnector{
|
||||
Config: Config{
|
||||
Content: ContentConfig{},
|
||||
},
|
||||
}
|
||||
conn.Config.Content.Movies.URL = "http://radarr.test"
|
||||
|
||||
if err := conn.ValidateConfig(); err == nil {
|
||||
t.Fatal("expected partial movies config to fail validation")
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateConfigAllowsEmptyContentConfig(t *testing.T) {
|
||||
conn := &ArrtrixConnector{}
|
||||
if err := conn.ValidateConfig(); err != nil {
|
||||
t.Fatalf("ValidateConfig returned error: %v", err)
|
||||
}
|
||||
}
|
||||
|
|
@ -18,6 +18,8 @@ func TestFormatHelpManagementRoom(t *testing.T) {
|
|||
alias: make(map[string]string),
|
||||
}
|
||||
proc.Add(NewHelpHandler(proc))
|
||||
proc.Add(NewDownloadHandler())
|
||||
proc.Add(NewSubscriptionsHandler())
|
||||
|
||||
out := formatHelp(proc, &Context{
|
||||
Bridge: &bridgev2.Bridge{
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ import (
|
|||
"testing"
|
||||
|
||||
"maunium.net/go/mautrix/id"
|
||||
|
||||
"sneeuwvlok/packages/arrtrix/pkg/arr"
|
||||
)
|
||||
|
||||
type stubRoomResolver struct {
|
||||
|
|
@ -26,12 +28,21 @@ type stubNoticeSender struct {
|
|||
err error
|
||||
}
|
||||
|
||||
type stubSubscriptionFilter struct {
|
||||
allowed bool
|
||||
err error
|
||||
}
|
||||
|
||||
func (s *stubNoticeSender) SendNotice(_ context.Context, roomID id.RoomID, message string) error {
|
||||
s.roomID = roomID
|
||||
s.message = message
|
||||
return s.err
|
||||
}
|
||||
|
||||
func (s stubSubscriptionFilter) Allows(context.Context, id.UserID, arr.ContentType, string) (bool, error) {
|
||||
return s.allowed, s.err
|
||||
}
|
||||
|
||||
func TestMountArrRequiresBridge(t *testing.T) {
|
||||
router := http.NewServeMux()
|
||||
if err := MountArr(router, nil, nil); err == nil {
|
||||
|
|
@ -112,3 +123,23 @@ func TestArrHandlerRejectsMissingEventType(t *testing.T) {
|
|||
t.Fatalf("expected bad request status, got %d", rec.Code)
|
||||
}
|
||||
}
|
||||
|
||||
func TestArrHandlerFiltersDisabledSubscriptions(t *testing.T) {
|
||||
sender := &stubNoticeSender{}
|
||||
handler := &ArrHandler{
|
||||
resolver: stubRoomResolver{target: managementTarget{UserID: "@user:test", RoomID: "!room:test"}},
|
||||
sender: sender,
|
||||
subscriptions: stubSubscriptionFilter{allowed: false},
|
||||
}
|
||||
|
||||
req := httptest.NewRequest(http.MethodPost, ArrWebhookPath, strings.NewReader(`{"eventType":"Download","movie":{"title":"Dune","year":2021}}`))
|
||||
rec := httptest.NewRecorder()
|
||||
handler.ServeHTTP(rec, req)
|
||||
|
||||
if rec.Code != http.StatusAccepted {
|
||||
t.Fatalf("expected accepted status, got %d", rec.Code)
|
||||
}
|
||||
if sender.roomID != "" {
|
||||
t.Fatalf("expected no notice to be sent, got room %q", sender.roomID)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue