[Unit Tests] BoardOffering templates, LoadoutResolution, loadout exceptions, quest definition coverage#255
[Unit Tests] BoardOffering templates, LoadoutResolution, loadout exceptions, quest definition coverage#255DiamondDagger590 wants to merge 1 commit into
Conversation
…t exceptions, quest definitions Cover previously untested code paths: - BoardOffering template constructors, template metadata, template state transitions - LoadoutResolution sealed interface (Found, Ambiguous, NotFound records) - LoadoutMaxSizeExceededException, SelectedLoadoutAboveMaxException, SkillHolderMissingSkillException - QuestObjectiveDefinition expression-based constructor and resolveRequiredProgress - QuestPhaseDefinition/QuestStageDefinition reward distribution and ordering - QuestRepeatMode and PhaseCompletionMode enum coverage Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HL54NfYMKTAsxFS2ndVUim
|
Warning Review limit reached
More reviews will be available in 53 minutes and 3 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary\n\nAdds 5 new test classes covering previously untested code paths (all were at 0% coverage):\n\n-
BoardOfferingTemplateTest— Template-specific constructors,isTemplateGenerated(),getTemplateKey(),getGeneratedDefinition(), database reconstruction with template metadata, and template offering state transitions (accept, expire, complete, abandon)\n-LoadoutResolutionTest— Sealed interfaceLoadoutResolutionwith all three record variants (Found,Ambiguous,NotFound): wrapping, equals/hashCode, type discrimination\n-LoadoutExceptionTest—LoadoutMaxSizeExceededException,SelectedLoadoutAboveMaxException,SkillHolderMissingSkillException: both constructor variants, getter preservation, RuntimeException inheritance\n-QuestObjectiveDefinitionExpressionTest— Expression-based constructor validation (blank/empty),resolveRequiredProgresswith tier variables, zero/negative resolution guards, static constructor validation, reward distribution Optional behavior, description route, rewards immutability\n-QuestDefinitionRewardDistributionTest—QuestPhaseDefinitionandQuestStageDefinitionreward distribution Optional behavior, stage ordering preservation,QuestRepeatModeenum (parameterized),PhaseCompletionModeenum\n\n## Test plan\n\n- [x] All 5 new test files pass individually\n- [x] Full test suite passes (./gradlew verifiedShadowJar— BUILD SUCCESSFUL)\n- [x] Testing audit persona (persona-testing.mdc) checklist applied — one finding fixed (convertedQuestRepeatModeround-trip loop to@ParameterizedTest/@EnumSource)\n- [x] No overlap with existing open test PRs (#238–#254)\n\n🤖 Generated with Claude Code\n\nhttps://claude.ai/code/session_01HL54NfYMKTAsxFS2ndVUimGenerated by Claude Code