fix: refresh uploads and remember login

This commit is contained in:
2026-08-13 22:25:00 +08:00
parent e0bd001541
commit fdab9978bf
17 changed files with 424 additions and 19 deletions
@@ -0,0 +1,38 @@
using LiveRecorder.Application.Common;
using LiveRecorder.Application.Models.Auth;
using LiveRecorder.Application.Services;
using LiveRecorder.Domain.Entities;
using LiveRecorder.Infrastructure.Persistence;
using LiveRecorder.Infrastructure.Persistence.Repositories;
using Microsoft.EntityFrameworkCore;
namespace LiveRecorder.Tests;
public sealed class AuthServiceTests
{
[Theory]
[InlineData(false, 12)]
[InlineData(true, 720)]
public async Task Login_UsesExpectedSessionLifetime(bool rememberMe, int expectedHours)
{
var options = new DbContextOptionsBuilder<LiveRecorderDbContext>()
.UseInMemoryDatabase($"auth-{Guid.NewGuid():N}")
.Options;
await using var context = new LiveRecorderDbContext(options);
var user = new UserAccount("admin", "Admin", PasswordHasher.Hash("secret123"), DateTimeOffset.UtcNow);
context.UserAccounts.Add(user);
await context.SaveChangesAsync();
var service = new AuthService(new UserAccountRepository(context), new UserSessionRepository(context), context);
var before = DateTimeOffset.UtcNow;
var response = await service.LoginAsync(new LoginRequest
{
Username = "admin",
Password = "secret123",
RememberMe = rememberMe
});
var after = DateTimeOffset.UtcNow;
Assert.InRange(response.ExpiresAt, before.AddHours(expectedHours), after.AddHours(expectedHours));
}
}