using FluentAssertions;
using foodmarket.IntegrationTests.Support;
using Xunit;

namespace foodmarket.IntegrationTests;

[Collection(ApiCollection.Name)]
public class HangfireDashboardTests
{
    private readonly ApiFactory _factory;
    public HangfireDashboardTests(ApiFactory factory) => _factory = factory;

    /// <summary>В тестах Hangfire-сервер выключен (Hangfire__Enabled=false), и
    /// dashboard-маршрут не маппится. Проверяем что /hangfire вообще не отвечает
    /// 200/302 без auth — то есть гейт работает на уровне отсутствия маршрута.
    /// На проде (Hangfire включён) фильтр SuperAdminHangfireFilter блокирует
    /// неавторизованных пользователей. См. SuperAdminHangfireFilter.</summary>
    [Fact]
    public async Task Dashboard_not_exposed_when_disabled_in_tests()
    {
        var api = new ApiActor(_factory.CreateClient());
        using var resp = await api.Http.GetAsync("/hangfire");
        // В тестовом режиме сервер не поднят, маршрут не зарегистрирован → 404.
        resp.StatusCode.Should().Be(System.Net.HttpStatusCode.NotFound);
    }
}
