up
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
Signals CI & Image / signals-ci (push) Has been cancelled

This commit is contained in:
StellaOps Bot
2025-11-26 07:47:08 +02:00
parent 56e2f64d07
commit 1c782897f7
184 changed files with 8991 additions and 649 deletions

View File

@@ -3,6 +3,7 @@ using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using StellaOps.Signals.Models;
using StellaOps.Signals.Options;
using StellaOps.Signals.Services;
using Xunit;
@@ -14,7 +15,7 @@ public class InMemoryEventsPublisherTests
public async Task PublishFactUpdatedAsync_EmitsStructuredEvent()
{
var logger = new TestLogger<InMemoryEventsPublisher>();
var publisher = new InMemoryEventsPublisher(logger);
var publisher = new InMemoryEventsPublisher(logger, new SignalsOptions());
var fact = new ReachabilityFactDocument
{
@@ -23,8 +24,8 @@ public class InMemoryEventsPublisherTests
ComputedAt = System.DateTimeOffset.Parse("2025-11-18T12:00:00Z"),
States = new List<ReachabilityStateDocument>
{
new() { Target = "pkg:pypi/django", Reachable = true, Confidence = 0.9 },
new() { Target = "pkg:pypi/requests", Reachable = false, Confidence = 0.2 }
new() { Target = "pkg:pypi/django", Reachable = true, Confidence = 0.9, Bucket = "runtime", Weight = 0.45 },
new() { Target = "pkg:pypi/requests", Reachable = false, Confidence = 0.2, Bucket = "runtime", Weight = 0.45 }
},
RuntimeFacts = new List<RuntimeFactDocument>
{
@@ -40,13 +41,20 @@ public class InMemoryEventsPublisherTests
Assert.Contains("\"reachableCount\":1", logger.LastMessage);
Assert.Contains("\"unreachableCount\":1", logger.LastMessage);
Assert.Contains("\"runtimeFactsCount\":1", logger.LastMessage);
Assert.Contains("\"bucket\":\"runtime\"", logger.LastMessage);
Assert.Contains("\"weight\":0.45", logger.LastMessage);
Assert.Contains("\"factScore\":", logger.LastMessage);
Assert.Contains("\"unknownsCount\":0", logger.LastMessage);
Assert.Contains("\"unknownsPressure\":0", logger.LastMessage);
Assert.Contains("\"stateCount\":2", logger.LastMessage);
Assert.Contains("\"targets\":[\"pkg:pypi/django\",\"pkg:pypi/requests\"]", logger.LastMessage);
}
private sealed class TestLogger<T> : ILogger<T>
{
public string LastMessage { get; private set; } = string.Empty;
public IDisposable BeginScope<TState>(TState state) => NullScope.Instance;
public IDisposable BeginScope<TState>(TState state) where TState : notnull => NullScope.Instance;
public bool IsEnabled(LogLevel logLevel) => true;