refactor(site-runtime): excise vestigial site-side notification-list surface — repo, DI registration, dead write paths (arch-review 08 §1.3/#23)
Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
This commit is contained in:
@@ -424,7 +424,8 @@ public class SiteCompositionRootTests : IDisposable
|
||||
public static IEnumerable<object[]> SiteScopedServices => new[]
|
||||
{
|
||||
new object[] { typeof(IExternalSystemRepository) },
|
||||
new object[] { typeof(INotificationRepository) },
|
||||
// INotificationRepository is intentionally absent — notification config is
|
||||
// central-only (arch-review 08 §1.3/#23); the site-side variant was removed.
|
||||
new object[] { typeof(ExternalSystemClient) },
|
||||
new object[] { typeof(IExternalSystemClient) },
|
||||
new object[] { typeof(DatabaseGateway) },
|
||||
@@ -442,11 +443,15 @@ public class SiteCompositionRootTests : IDisposable
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Site_NotificationRepository_IsSiteImplementation()
|
||||
public void Site_NotificationRepository_IsNotRegistered()
|
||||
{
|
||||
// Notification delivery is central-only (CLAUDE.md "Notification delivery is
|
||||
// central-only"); the site-local notification_lists/smtp_configurations tables
|
||||
// are purged on every artifact apply, so a site-side INotificationRepository
|
||||
// could only ever serve empty results. It must not be registered at all.
|
||||
using var scope = _host.Services.CreateScope();
|
||||
var repo = scope.ServiceProvider.GetRequiredService<INotificationRepository>();
|
||||
Assert.IsType<SiteNotificationRepository>(repo);
|
||||
var repo = scope.ServiceProvider.GetService<INotificationRepository>();
|
||||
Assert.Null(repo);
|
||||
}
|
||||
|
||||
// --- Options ---
|
||||
|
||||
Reference in New Issue
Block a user