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

@@ -0,0 +1,57 @@
using System.Collections.Generic;
using StellaOps.Graph.Api.Contracts;
using StellaOps.Graph.Api.Services;
using Xunit;
namespace StellaOps.Graph.Api.Tests;
public class DiffServiceTests
{
[Fact]
public async Task DiffAsync_EmitsAddedRemovedChangedAndStats()
{
var repo = new InMemoryGraphRepository();
var service = new InMemoryGraphDiffService(repo);
var request = new GraphDiffRequest
{
SnapshotA = "snapA",
SnapshotB = "snapB",
IncludeEdges = true,
IncludeStats = true
};
var lines = new List<string>();
await foreach (var line in service.DiffAsync("acme", request))
{
lines.Add(line);
}
Assert.Contains(lines, l => l.Contains("\"type\":\"node_added\"") && l.Contains("newlib"));
Assert.Contains(lines, l => l.Contains("\"type\":\"node_changed\"") && l.Contains("widget"));
Assert.Contains(lines, l => l.Contains("\"type\":\"edge_added\""));
Assert.Contains(lines, l => l.Contains("\"type\":\"stats\""));
}
[Fact]
public async Task DiffAsync_WhenSnapshotMissing_ReturnsError()
{
var repo = new InMemoryGraphRepository();
var service = new InMemoryGraphDiffService(repo);
var request = new GraphDiffRequest
{
SnapshotA = "snapA",
SnapshotB = "missing"
};
var lines = new List<string>();
await foreach (var line in service.DiffAsync("acme", request))
{
lines.Add(line);
}
Assert.Single(lines);
Assert.Contains("GRAPH_SNAPSHOT_NOT_FOUND", lines[0]);
}
}