Add MonitorAlbum component tests: 21 cases covering all flow diagrams (bufconn + testcontainers + hand-rolled mocks)
This commit is contained in:
+25
-4
@@ -34,9 +34,9 @@ type parsedItem struct {
|
||||
type MusicAgregatorService struct {
|
||||
config config.Config
|
||||
metadata *metadata.MetadataService
|
||||
indexer *indexer.IndexerService
|
||||
indexer indexer.Searcher
|
||||
torrentClient torrent.TorrentClient
|
||||
magnetResolver *torrentParser.MagnetResolver
|
||||
magnetResolver torrentParser.Resolver
|
||||
riverClient *river.Client[pgx.Tx]
|
||||
torrents *database.TorrentRepository
|
||||
downloads *database.DownloadRepository
|
||||
@@ -83,9 +83,30 @@ func NewMusicAgregatorService(cfg config.Config, riverClient *river.Client[pgx.T
|
||||
}, nil
|
||||
}
|
||||
|
||||
func NewMusicAgregatorServiceWithDeps(
|
||||
metadata *metadata.MetadataService,
|
||||
searcher indexer.Searcher,
|
||||
torrentClient torrent.TorrentClient,
|
||||
magnetResolver torrentParser.Resolver,
|
||||
riverClient *river.Client[pgx.Tx],
|
||||
db *database.DB,
|
||||
) *MusicAgregatorService {
|
||||
return &MusicAgregatorService{
|
||||
metadata: metadata,
|
||||
indexer: searcher,
|
||||
torrentClient: torrentClient,
|
||||
magnetResolver: magnetResolver,
|
||||
riverClient: riverClient,
|
||||
torrents: database.NewTorrentRepository(db.Pool),
|
||||
downloads: database.NewDownloadRepository(db.Pool),
|
||||
artists: database.NewArtistRepository(db.Pool),
|
||||
downloadFiles: database.NewDownloadFileRepository(db.Pool),
|
||||
}
|
||||
}
|
||||
|
||||
func (s *MusicAgregatorService) Close() {
|
||||
if s.magnetResolver != nil {
|
||||
s.magnetResolver.Close()
|
||||
if closer, ok := s.magnetResolver.(interface{ Close() }); ok {
|
||||
closer.Close()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user