using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; namespace GmRelay.Bot.Tests.Web; public sealed class CookieAuthOptionsTests { [Fact] public void CookieAuthOptions_ShouldUseLaxSameSite_ToAllowOAuthCallback() { // Arrange var services = new ServiceCollection(); services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options => { options.Cookie.HttpOnly = true; options.Cookie.SecurePolicy = CookieSecurePolicy.Always; options.Cookie.SameSite = SameSiteMode.Lax; options.ExpireTimeSpan = TimeSpan.FromDays(7); options.SlidingExpiration = true; }); var provider = services.BuildServiceProvider(); var optionsMonitor = provider.GetRequiredService>(); var options = optionsMonitor.Get(CookieAuthenticationDefaults.AuthenticationScheme); // Assert Assert.Equal(SameSiteMode.Lax, options.Cookie.SameSite); Assert.True(options.Cookie.HttpOnly); Assert.Equal(CookieSecurePolicy.Always, options.Cookie.SecurePolicy); } }