diff --git a/BlogWriter.Tests/BlogWorkflowTests.cs b/BlogWriter.Tests/BlogWorkflowTests.cs index a8d2f57..5d9ace0 100644 --- a/BlogWriter.Tests/BlogWorkflowTests.cs +++ b/BlogWriter.Tests/BlogWorkflowTests.cs @@ -57,6 +57,9 @@ public async Task RunAsync_RejectedInitialDraftGetsOneRevisionAndNoSecondReview( Assert.Equal("draft-2", session.State.Draft); Assert.Equal("Please revise the introduction.", session.State.ReviewNotes); Assert.Equal(2, author.Calls); + Assert.Equal(2, author.ReviewNotesSeen.Count); + Assert.Equal("", author.ReviewNotesSeen[0]); + Assert.Equal("Please revise the introduction.", author.ReviewNotesSeen[1]); Assert.Equal(1, reviewer.Calls); Assert.Contains(output.Updates, update => update.Kind == WorkflowOutputKind.Lifecycle && @@ -74,13 +77,17 @@ public async Task RunAsync_RejectedRevisionWithoutReplacementKeepsLatestDraftAnd author, reviewer, NullLogger.Instance); + var output = new WorkflowOutputCollector(); var service = new BlogWriterSessionService(workflow, new RecordingStore()); - BlogSession session = await service.StartAsync("topic"); + BlogSession session = await service.StartAsync("topic", output: output); Assert.Equal("draft-1", session.State.Draft); Assert.Equal(2, author.Calls); Assert.Equal(1, reviewer.Calls); + Assert.Contains(output.Updates, update => + update.Kind == WorkflowOutputKind.Lifecycle && + update.Outcome == WorkflowOutputOutcome.Success); } private sealed class TestBlogger : IBloggerAgent @@ -113,6 +120,7 @@ private sealed class TestAuthor(params string?[] drafts) : IAuthorAgent private readonly IReadOnlyList _drafts = drafts; public int Calls { get; private set; } + public List ReviewNotesSeen { get; } = []; public Task InvokeAsync(ResearchState state, CancellationToken cancellationToken = default) => Task.FromResult(_drafts[Math.Min(Calls, _drafts.Count - 1)]); @@ -120,6 +128,7 @@ private sealed class TestAuthor(params string?[] drafts) : IAuthorAgent public Task AuthorNodeAsync(ResearchState state, CancellationToken cancellationToken = default) { string? draft = _drafts[Math.Min(Calls, _drafts.Count - 1)]; + ReviewNotesSeen.Add(state.ReviewNotes); Calls++; state.RevisionNumber++; if (!string.IsNullOrEmpty(draft))