mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 03:43:11 +00:00
test(auth): give the reset test host's helpers names of their own
This commit is contained in:
parent
9198c5cd5d
commit
c860936d07
1 changed files with 11 additions and 11 deletions
|
|
@ -43,9 +43,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)
|
||||
|
|
@ -53,9 +53,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");
|
||||
|
|
@ -234,7 +234,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);
|
||||
|
||||
|
|
@ -243,7 +243,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);
|
||||
|
||||
|
|
@ -262,7 +262,7 @@ internal sealed class CapturingEmailSender : IEmailSender
|
|||
}
|
||||
}
|
||||
|
||||
internal sealed class CapturingLoggerProvider : ILoggerProvider
|
||||
internal sealed class ResetLogCapture : ILoggerProvider
|
||||
{
|
||||
public ConcurrentQueue<string> Lines { get; } = new();
|
||||
|
||||
|
|
@ -274,10 +274,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