using ItWorx.KnowledgeHub.Domain.Runbooks; namespace ItWorx.KnowledgeHub.Domain.Tests; public sealed class RunbookProfileTests { private static readonly DateTimeOffset Now = new(2026, 8, 1, 12, 0, 0, TimeSpan.Zero); [Fact] public void A_never_validated_runbook_is_stale_against_any_revision() { var runbook = RunbookProfile.Create(Guid.NewGuid(), Guid.NewGuid(), RunbookRiskLevel.Medium, false, null, null, Now); Assert.True(runbook.IsStaleAgainst(1)); } [Fact] public void Validate_records_the_reviewer_and_the_current_revision() { var runbook = RunbookProfile.Create(Guid.NewGuid(), Guid.NewGuid(), RunbookRiskLevel.High, true, 30, null, Now); var validator = Guid.NewGuid(); runbook.Validate(validator, 3, Now); Assert.Equal(validator, runbook.ValidatedBy); Assert.Equal(Now, runbook.LastValidatedAt); Assert.False(runbook.IsStaleAgainst(3)); } [Fact] public void A_new_content_revision_after_validation_makes_the_runbook_stale_again() { var runbook = RunbookProfile.Create(Guid.NewGuid(), Guid.NewGuid(), RunbookRiskLevel.Low, false, null, null, Now); runbook.Validate(Guid.NewGuid(), 2, Now); Assert.True(runbook.IsStaleAgainst(3)); } }