mirror of
https://github.com/SoPat712/allstarr.git
synced 2026-04-27 12:02:51 -04:00
v1.3.0: Massive WebUI cleanup, Fixed/Stabilized scrobbling, Significant security hardening, added user login to WebUI, refactored searching/interleaving to work MUCH better, Tidal Powered recommendations for SquidWTF provider, Fixed double scrobbling, inferring stops much better, fixed playlist cron rebuilding, stale injected playlist artwork, and search cache TTL
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
using allstarr.Models.Scrobbling;
|
||||
using allstarr.Models.Settings;
|
||||
using allstarr.Services.Scrobbling;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Moq;
|
||||
|
||||
namespace allstarr.Tests;
|
||||
|
||||
public class ScrobblingOrchestratorTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task OnPlaybackStartAsync_DuplicateStartForSameTrack_SendsNowPlayingOnce()
|
||||
{
|
||||
var service = new Mock<IScrobblingService>();
|
||||
service.SetupGet(s => s.IsEnabled).Returns(true);
|
||||
service.SetupGet(s => s.ServiceName).Returns("MockService");
|
||||
service.Setup(s => s.UpdateNowPlayingAsync(It.IsAny<ScrobbleTrack>(), It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(ScrobbleResult.CreateSuccess());
|
||||
|
||||
var orchestrator = CreateOrchestrator(service.Object);
|
||||
var track = CreateTrack();
|
||||
|
||||
await orchestrator.OnPlaybackStartAsync("device-1", track);
|
||||
await orchestrator.OnPlaybackStartAsync("device-1", track);
|
||||
|
||||
service.Verify(
|
||||
s => s.UpdateNowPlayingAsync(It.IsAny<ScrobbleTrack>(), It.IsAny<CancellationToken>()),
|
||||
Times.Once);
|
||||
}
|
||||
|
||||
private static ScrobblingOrchestrator CreateOrchestrator(IScrobblingService service)
|
||||
{
|
||||
var settings = Options.Create(new ScrobblingSettings
|
||||
{
|
||||
Enabled = true
|
||||
});
|
||||
|
||||
var logger = Mock.Of<ILogger<ScrobblingOrchestrator>>();
|
||||
return new ScrobblingOrchestrator(new[] { service }, settings, logger);
|
||||
}
|
||||
|
||||
private static ScrobbleTrack CreateTrack()
|
||||
{
|
||||
return new ScrobbleTrack
|
||||
{
|
||||
Title = "Sad Girl Summer",
|
||||
Artist = "Maisie Peters",
|
||||
DurationSeconds = 180,
|
||||
IsExternal = true,
|
||||
StartPositionSeconds = 0
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user