mirror of
https://github.com/SoPat712/allstarr.git
synced 2026-04-27 03:53:10 -04:00
77 lines
2.4 KiB
C#
77 lines
2.4 KiB
C#
using allstarr.Models.Settings;
|
|
using allstarr.Services.Common;
|
|
|
|
namespace allstarr.Tests;
|
|
|
|
public class SpotifyPlaylistScopeResolverTests
|
|
{
|
|
[Fact]
|
|
public void ResolveConfig_PrefersExactJellyfinIdOverDuplicatePlaylistName()
|
|
{
|
|
var settings = new SpotifyImportSettings
|
|
{
|
|
Playlists =
|
|
{
|
|
new SpotifyPlaylistConfig
|
|
{
|
|
Name = "Discover Weekly",
|
|
Id = "spotify-a",
|
|
JellyfinId = "jellyfin-a",
|
|
UserId = "user-a"
|
|
},
|
|
new SpotifyPlaylistConfig
|
|
{
|
|
Name = "Discover Weekly",
|
|
Id = "spotify-b",
|
|
JellyfinId = "jellyfin-b",
|
|
UserId = "user-b"
|
|
}
|
|
}
|
|
};
|
|
|
|
var resolved = SpotifyPlaylistScopeResolver.ResolveConfig(
|
|
settings,
|
|
"Discover Weekly",
|
|
userId: "user-a",
|
|
jellyfinPlaylistId: "jellyfin-b");
|
|
|
|
Assert.NotNull(resolved);
|
|
Assert.Equal("spotify-b", resolved!.Id);
|
|
Assert.Equal("jellyfin-b", resolved.JellyfinId);
|
|
Assert.Equal("user-b", resolved.UserId);
|
|
}
|
|
|
|
[Fact]
|
|
public void GetUserId_PrefersConfiguredValueAndTrimsFallback()
|
|
{
|
|
var configured = new SpotifyPlaylistConfig
|
|
{
|
|
UserId = " configured-user "
|
|
};
|
|
|
|
Assert.Equal("configured-user", SpotifyPlaylistScopeResolver.GetUserId(configured, "fallback"));
|
|
Assert.Equal("fallback-user", SpotifyPlaylistScopeResolver.GetUserId(null, " fallback-user "));
|
|
Assert.Null(SpotifyPlaylistScopeResolver.GetUserId(null, " "));
|
|
}
|
|
|
|
[Fact]
|
|
public void GetScopeId_PrefersJellyfinIdThenSpotifyIdThenFallback()
|
|
{
|
|
var jellyfinScoped = new SpotifyPlaylistConfig
|
|
{
|
|
Id = "spotify-id",
|
|
JellyfinId = " jellyfin-id "
|
|
};
|
|
|
|
var spotifyScoped = new SpotifyPlaylistConfig
|
|
{
|
|
Id = " spotify-id "
|
|
};
|
|
|
|
Assert.Equal("jellyfin-id", SpotifyPlaylistScopeResolver.GetScopeId(jellyfinScoped, "fallback"));
|
|
Assert.Equal("spotify-id", SpotifyPlaylistScopeResolver.GetScopeId(spotifyScoped, "fallback"));
|
|
Assert.Equal("fallback-id", SpotifyPlaylistScopeResolver.GetScopeId(null, " fallback-id "));
|
|
Assert.Null(SpotifyPlaylistScopeResolver.GetScopeId(null, " "));
|
|
}
|
|
}
|