Files
AX-Copilot-Codex/src/AxCopilot.Tests/Services/DeckRepairGuideServiceTests.cs
lacvet ff29a83039 ???? ?? ? ??? ???? workbook/deck ?? ??? ??
?? ??
- AgentLoopService? ?? ?? ? ?? ??? ?? ??? ??? ?? ??? ? ??? ??? ??? ??
- XLSX dashboard workbook? PPT deck? ?? ?? ??? ??? ?? dashboard, storyline ?? ????? ? ? ????? ??

?? ????
- AgentQueuedCommandProjector? ??? queued command ??? queued_input_interrupt, queue_notification, queue_resume, queued_prompt ?? ???? thinking/user ???? ???? ?? helper? ??
- AgentLoopService? drain? ? ??? ?? switch? ?? ?? projector ??? ???? ??? ???
- ArtifactQualityReviewService? dashboard sheet? KPI, trend, decision ?? ?? ??? ???? workbook review ??? ??
- ArtifactRepairGuideService? ? dashboard ??? core story ?? ?? ???? ????? ??
- DeckQualityReviewService? storyline? Options, Roadmap, Appendix? ????? ?? ????? ?? ? ?? ?? ??? ????? ??
- DeckRepairGuideService? storyline ?? ??? deck storyline ?? ???? ????? ??
- AgentQueuedCommandProjectorTests, DeckQualityReviewServiceTests, ArtifactQualityReviewServiceTests, ArtifactRepairGuideServiceTests, DeckRepairGuideServiceTests? ??? ??? ??
- README.md? docs/DEVELOPMENT.md? 2026-04-15 09:24 (KST) ?? ??? ?? ??? ??

?? ??
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_loop_doc_finish2\\ -p:IntermediateOutputPath=obj\\verify_loop_doc_finish2\\ : ?? 0 / ?? 0
- dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentQueuedCommandProjectorTests|AgentCommandQueueTests|ArtifactQualityReviewServiceTests|ArtifactRepairGuideServiceTests|DeckQualityReviewServiceTests|DeckRepairGuideServiceTests|PptxSkillGoldenDeckTests|ExcelSkillDashboardSummaryTests" -p:OutputPath=bin\\verify_loop_doc_finish2_tests\\ -p:IntermediateOutputPath=obj\\verify_loop_doc_finish2_tests\\ : ?? 25
2026-04-15 08:58:19 +09:00

74 lines
2.3 KiB
C#

using AxCopilot.Services.Agent;
using FluentAssertions;
using Xunit;
namespace AxCopilot.Tests.Services;
public class DeckRepairGuideServiceTests
{
[Fact]
public void BuildGuide_ShouldReturnNone_WhenNoIssues()
{
var report = new DeckQualityReport(92, ["Includes Recommendation"], [], []);
var guide = DeckRepairGuideService.BuildGuide(report);
guide.Should().Be("Deck repair guide: none");
}
[Fact]
public void BuildGuide_ShouldTranslateDeckIssuesIntoActionableGuidance()
{
var report = new DeckQualityReport(
61,
[],
[
new DeckReviewIssue("Executive Summary slide is missing.", DeckReviewSeverity.Critical),
new DeckReviewIssue("Slide 3: content density is high and should be simplified.", DeckReviewSeverity.Warning),
new DeckReviewIssue("Evidence slides such as charts, tables, or comparisons are limited.", DeckReviewSeverity.Warning),
],
[]);
var guide = DeckRepairGuideService.BuildGuide(report);
guide.Should().Contain("Executive Summary");
guide.Should().Contain("Reduce text density");
guide.Should().Contain("evidence");
}
[Fact]
public void BuildGuide_ShouldSurfaceAppendixAndHeadlineActions()
{
var report = new DeckQualityReport(
58,
[],
[
new DeckReviewIssue("Appendix or evidence slide is limited.", DeckReviewSeverity.Info),
new DeckReviewIssue("Found 2 duplicate headline(s).", DeckReviewSeverity.Warning)
],
[]);
var guide = DeckRepairGuideService.BuildGuide(report);
guide.Should().Contain("appendix");
guide.Should().Contain("distinct message");
}
[Fact]
public void BuildGuide_ShouldTranslateStorylineGapIntoConcreteAction()
{
var report = new DeckQualityReport(
63,
[],
[
new DeckReviewIssue("Storyline expects an options or comparison slide but none is present.", DeckReviewSeverity.Warning)
],
["Executive Summary", "Options"]);
var guide = DeckRepairGuideService.BuildGuide(report);
guide.Should().Contain("comparison slide");
guide.Should().Contain("storyline");
}
}