using ItWorx.KnowledgeHub.Domain.Infrastructure; namespace ItWorx.KnowledgeHub.Domain.Tests; public sealed class InfrastructureKnowledgeTests { [Fact] public void Editorial_profile_normalizes_tags_without_touching_source_facts() { var now = DateTimeOffset.UtcNow; var profile = EditorialProfile.Create( Guid.NewGuid(), InfrastructureObjectKind.Service, Guid.NewGuid(), Guid.NewGuid(), now); profile.Update( " Knowledge Hub ", "Beschrijving", "Productiviteit", "Doel", null, null, null, null, "Gedekt", null, "Notities", "Risico's", "Update", "Rollback", ["docker", "Docker", " kennis "], true, false, false, Guid.NewGuid(), now.AddMinutes(1)); Assert.Equal("Knowledge Hub", profile.DisplayName); Assert.Equal(["docker", "kennis"], profile.Tags); Assert.True(profile.IsFavorite); } [Fact] public void A_missing_service_is_never_deleted_and_can_be_observed_again() { var now = DateTimeOffset.UtcNow; var service = InfrastructureService.Create( Guid.NewGuid(), "docker:knowledge-hub", "knowledge-hub", now, Guid.NewGuid()); service.Confirm(); service.MarkMissing(now.AddMinutes(1)); Assert.Equal(InventoryPresence.Missing, service.Presence); service.Refresh( null, "knowledge-hub", "container", "running", HealthState.Healthy, "itworx/knowledge-hub:v2", "sha256:test", "10001:10001", true, true, false, FactConfidence.High, Guid.NewGuid(), now.AddMinutes(2)); Assert.Equal(InventoryPresence.Present, service.Presence); } [Fact] public void A_rejected_proposal_stays_archived_when_seen_in_a_later_snapshot() { var now = DateTimeOffset.UtcNow; var service = InfrastructureService.Create( Guid.NewGuid(), "docker:temporary", "temporary", now, Guid.NewGuid()); service.Reject(); service.Refresh( null, "temporary", "container", "running", HealthState.Healthy, "example/temporary:latest", "sha256:test", "1000:1000", false, true, false, FactConfidence.High, Guid.NewGuid(), now.AddMinutes(1)); Assert.Equal(InventoryPresence.Archived, service.Presence); } }