mirror of
https://github.com/truewhile/MeBox.git
synced 2026-10-12 08:16:37 +08:00
fix(downloads): prevent subscription readding deleted torrents
This commit is contained in:
@@ -80,3 +80,91 @@ func TestDownloadClientRejectsUnsupportedHostScheme(t *testing.T) {
|
||||
t.Fatal("expected unsupported scheme error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDownloadClientDeleteClearsLegacyQBitConnectionWhenNoDefault(t *testing.T) {
|
||||
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := db.AutoMigrate(&model.DownloadClient{}, &model.Setting{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
repos := repository.New(db)
|
||||
for key, value := range map[string]string{
|
||||
"qbittorrent.url": "http://127.0.0.1:8080",
|
||||
"qbittorrent.username": "admin",
|
||||
"qbittorrent.password": "admin",
|
||||
} {
|
||||
if err := repos.Setting.Set(t.Context(), key, value); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
svc := NewDownloadClientService(zap.NewNop(), repos)
|
||||
row, err := svc.Create(t.Context(), DownloadClientInput{
|
||||
Name: "qB",
|
||||
Type: "qbittorrent",
|
||||
Host: "http://127.0.0.1:8080",
|
||||
IsDefault: true,
|
||||
Enabled: true,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := svc.Delete(t.Context(), row.ID); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
for _, key := range []string{"qbittorrent.url", "qbittorrent.username", "qbittorrent.password"} {
|
||||
value, err := repos.Setting.Get(t.Context(), key)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if value != "" {
|
||||
t.Fatalf("%s = %q, want cleared", key, value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestDownloadClientUpdateClearsLegacyQBitConnectionWhenDefaultDisabled(t *testing.T) {
|
||||
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := db.AutoMigrate(&model.DownloadClient{}, &model.Setting{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
repos := repository.New(db)
|
||||
if err := repos.Setting.Set(t.Context(), "qbittorrent.url", "http://127.0.0.1:8080"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
svc := NewDownloadClientService(zap.NewNop(), repos)
|
||||
row, err := svc.Create(t.Context(), DownloadClientInput{
|
||||
Name: "qB",
|
||||
Type: "qbittorrent",
|
||||
Host: "http://127.0.0.1:8080",
|
||||
IsDefault: true,
|
||||
Enabled: true,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if _, err := svc.Update(t.Context(), row.ID, DownloadClientInput{
|
||||
Name: "qB",
|
||||
Type: "qbittorrent",
|
||||
Host: "http://127.0.0.1:8080",
|
||||
IsDefault: false,
|
||||
Enabled: false,
|
||||
}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
value, err := repos.Setting.Get(t.Context(), "qbittorrent.url")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if value != "" {
|
||||
t.Fatalf("qbittorrent.url = %q, want cleared", value)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user