mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 07:13:12 +00:00
test(auth): give the reset test host's helpers names of their own
This commit is contained in:
parent
f0dcba63fd
commit
5eb1323419
2 changed files with 13 additions and 13 deletions
|
|
@ -123,7 +123,7 @@ public sealed class PasswordResetAbuseLimitsTests
|
|||
[Fact]
|
||||
public void Concurrent_checks_can_never_exceed_the_account_budget()
|
||||
{
|
||||
var throttle = new InMemoryPasswordResetThrottle(new ManualTimeProvider());
|
||||
var throttle = new InMemoryPasswordResetThrottle(new ResetTestClock());
|
||||
|
||||
var reserved = 0;
|
||||
Parallel.For(0, 64, _ =>
|
||||
|
|
@ -138,7 +138,7 @@ public sealed class PasswordResetAbuseLimitsTests
|
|||
[Fact]
|
||||
public void A_matching_check_gives_its_reservation_back()
|
||||
{
|
||||
var throttle = new InMemoryPasswordResetThrottle(new ManualTimeProvider());
|
||||
var throttle = new InMemoryPasswordResetThrottle(new ResetTestClock());
|
||||
|
||||
for (var check = 0; check < 50; check++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -46,9 +46,9 @@ internal sealed class PasswordResetTestHost : IAsyncDisposable
|
|||
}
|
||||
|
||||
public HttpClient Client { get; }
|
||||
public CapturingEmailSender Sent { get; private init; } = null!;
|
||||
public ManualTimeProvider Time { get; private init; } = null!;
|
||||
public CapturingLoggerProvider Logged { get; private init; } = null!;
|
||||
public ResetEmailOutbox Sent { get; private init; } = null!;
|
||||
public ResetTestClock Time { get; private init; } = null!;
|
||||
public ResetLogCapture Logged { get; private init; } = null!;
|
||||
public IServiceProvider Services => _app.Services;
|
||||
|
||||
public static async Task<PasswordResetTestHost> StartAsync(IEmailSender? emailSender = null, Action<IServiceCollection>? configureServices = null)
|
||||
|
|
@ -56,9 +56,9 @@ internal sealed class PasswordResetTestHost : IAsyncDisposable
|
|||
var databasePath = Path.Combine(Path.GetTempPath(), $"password-reset-{Guid.NewGuid():N}.db");
|
||||
var connectionString = new SqliteConnectionStringBuilder { DataSource = databasePath, DefaultTimeout = 30 }.ToString();
|
||||
|
||||
var sent = new CapturingEmailSender();
|
||||
var time = new ManualTimeProvider();
|
||||
var logged = new CapturingLoggerProvider();
|
||||
var sent = new ResetEmailOutbox();
|
||||
var time = new ResetTestClock();
|
||||
var logged = new ResetLogCapture();
|
||||
|
||||
var builder = WebApplication.CreateBuilder(new WebApplicationOptions { EnvironmentName = "Testing" });
|
||||
builder.WebHost.UseUrls("http://127.0.0.1:0");
|
||||
|
|
@ -258,7 +258,7 @@ internal sealed class PasswordResetTestHost : IAsyncDisposable
|
|||
}
|
||||
}
|
||||
|
||||
internal sealed class ManualTimeProvider : TimeProvider
|
||||
internal sealed class ResetTestClock : TimeProvider
|
||||
{
|
||||
private DateTimeOffset _now = new(2026, 9, 25, 12, 0, 0, TimeSpan.Zero);
|
||||
|
||||
|
|
@ -267,7 +267,7 @@ internal sealed class ManualTimeProvider : TimeProvider
|
|||
public void Advance(TimeSpan by) => _now = _now.Add(by);
|
||||
}
|
||||
|
||||
internal sealed class CapturingEmailSender : IEmailSender
|
||||
internal sealed class ResetEmailOutbox : IEmailSender
|
||||
{
|
||||
private static readonly Regex CodePattern = new(@"Your Password Reset Code is: (\d{6})", RegexOptions.CultureInvariant);
|
||||
|
||||
|
|
@ -286,7 +286,7 @@ internal sealed class CapturingEmailSender : IEmailSender
|
|||
}
|
||||
}
|
||||
|
||||
internal sealed class CapturingLoggerProvider : ILoggerProvider
|
||||
internal sealed class ResetLogCapture : ILoggerProvider
|
||||
{
|
||||
public ConcurrentQueue<string> Lines { get; } = new();
|
||||
|
||||
|
|
@ -298,10 +298,10 @@ internal sealed class CapturingLoggerProvider : ILoggerProvider
|
|||
|
||||
private sealed class CapturingLogger : ILogger
|
||||
{
|
||||
private readonly CapturingLoggerProvider _owner;
|
||||
private readonly ResetLogCapture _owner;
|
||||
private readonly string _category;
|
||||
|
||||
public CapturingLogger(CapturingLoggerProvider owner, string category)
|
||||
public CapturingLogger(ResetLogCapture owner, string category)
|
||||
{
|
||||
_owner = owner;
|
||||
_category = category;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue