T1: tests stop sharing state they don't own
- JobQueue takes an optional scope, so a test's worker leases and reaps only its own jobs. - The dead-host delivery test runs alone (Exclusive), on its own jobs, and cleans up the breaker rows it trips; the breaker has tests of its own on unique hosts. - Index and migration tests run alone: they drop indexes and rewrite every post. - DomainBlocks.Load replaces reflection and a database-wide block in tests. - Harness.Outgoing sees only deliveries queued since the harness started: Peer ports are reused within a run, which made the circle test flaky. - Two pure-logic tests leave Mongo-gated classes, so CI runs them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ELjqpznMFMNrJoJUj6K5p2
This commit is contained in:
1 parent
7c6fe80f1b
commit
00b2685cf4
14 files changed
+285
-106
No files matched your search
@@ -34,6 +34,8 @@ namespace PrivaPub.Tests.Support
|
||||
public const string Host = "privapub.test";
|
||||
public const string Base = "https://" + Host;
|
||||
|
||||
readonly DateTime _started = Millisecond(DateTime.UtcNow);
|
||||
|
||||
Harness(Peer peer)
|
||||
{
|
||||
Peer = peer;
|
||||
@@ -136,13 +138,15 @@ namespace PrivaPub.Tests.Support
|
||||
}
|
||||
|
||||
public async Task<List<JsonObject>> Outgoing(string inbox) =>
|
||||
(await DB.Default.Find<Job>().Match(j => j.Kind == JobKind.Deliver).ExecuteAsync())
|
||||
(await DB.Default.Find<Job>().Match(j => j.Kind == JobKind.Deliver && j.CreatedAt >= _started).ExecuteAsync())
|
||||
.Select(j => JsonSerializer.Deserialize<DeliveryPayload>(j.Payload))
|
||||
.Where(p => p.Inbox == inbox)
|
||||
.Select(p => JsonNode.Parse(p.Body)!.AsObject())
|
||||
.ToList();
|
||||
|
||||
public async ValueTask DisposeAsync() => await Peer.DisposeAsync();
|
||||
|
||||
static DateTime Millisecond(DateTime time) => new(time.Ticks - time.Ticks % TimeSpan.TicksPerMillisecond, DateTimeKind.Utc);
|
||||
}
|
||||
|
||||
public sealed class KeyLocalizer<T> : IStringLocalizer<T>
|
||||
|
||||
Reference in new issue
Block a user