Backend: - Expose GET /config/playback so the frontend can detect whether anonymous listening is enabled without requiring auth - Wire anonymous access through track streaming and YouTube resolve flows Frontend: - Allow browsing/listening without a session when the backend enables it - Redesign Inicio, Sidebar and top bar with a new dark theme, typography, and layout (top bar with live quick-search, sticky/blurred on scroll) - Populate Top música, Popular and Recomendados with real Musify + YouTube Music data instead of placeholders - Various shape, spacing, color and animation refinements across the redesigned components
32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
using Musify.Application.Configuration;
|
|
using Musify.Application.Tests.TestSupport;
|
|
using Xunit;
|
|
|
|
namespace Musify.Application.Tests.Configuration
|
|
{
|
|
public sealed class GetPlaybackPublicConfigTests
|
|
{
|
|
[Fact]
|
|
public async Task Handle_ReflectsPlaybackConfiguration()
|
|
{
|
|
var playback = TestConfigurations.Playback(allowAnonymousListening: true, anonymousFragmentSeconds: 30);
|
|
var handler = new GetPlaybackPublicConfigQueryHandler(playback);
|
|
|
|
var response = await handler.Handle(new GetPlaybackPublicConfigQuery(), TestContext.Current.CancellationToken);
|
|
|
|
Assert.True(response.AllowAnonymousListening);
|
|
Assert.Equal(30, response.AnonymousFragmentSeconds);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Handle_DefaultsToDisabled()
|
|
{
|
|
var handler = new GetPlaybackPublicConfigQueryHandler(TestConfigurations.Playback());
|
|
|
|
var response = await handler.Handle(new GetPlaybackPublicConfigQuery(), TestContext.Current.CancellationToken);
|
|
|
|
Assert.False(response.AllowAnonymousListening);
|
|
}
|
|
}
|
|
}
|