Skip to content

refactor(packages): move fixtures off Core internals to the Package fixture root - #69

Merged
Mathih13 merged 4 commits into
mainfrom
feat/package-fixture-root
Oct 7, 2026
Merged

Mathih13 merged 4 commits into
mainfrom
feat/package-fixture-root

Conversation

@Mathih13

@Mathih13 Mathih13 commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

dungeons and the playerbots fixtures name Core internals through package-api: exempt lines to set up their durable tests. LyraCoreProject/LyraCore#624 adds crate::package_fixture, a debug-only Package API root for these steps. This PR moves the fixtures to it.

  • dungeons damages Mr. Smite through apply_damage. Its last exemption is gone.
  • playerbots fixtures use apply_damage, remove_live_character, require_no_imported_content, top_threat_target, client_cast and declare_next_movement_tick.
  • The destination fixture reads the navigation revision through nav::inputs, which is already on the surface.

The lint accepts the new root only in a file whose first non-blank line is #![cfg(feature = "debug_reducers")]. Six playerbots fixture files and dungeons/src/deadmines_verify.rs now carry that gate. The dungeons file had a gate on every item, and the file gate replaces them.

One behaviour change: every fixture now accepts the weather seed a fresh Module stamps. Before, the quest catalogue and destination fixtures refused it, and the destination fixture deleted it first. The testsuites delete that row themselves, so no case changes.

Exemptions that remain in playerbots belong to later tickets: auth in mod.rs (Account and Character creation), instance, account_ownership, realm_core and transfer in the Transfer fixtures, and runtime_script and test_scan in the goals.rs tests.

CI pins Core at 9d9524b, the head of #624.

Pair: LyraCoreProject/LyraCore#624. Merge Core first, then this PR.

Claude Opus 5.5 made this change in Claude Code.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated automated checks to use a newer shared core revision.
    • Standardized test fixture setup and validation across dungeon, playerbot, and transfer scenarios. These changes affect automated checks only; no end-user features or behavior changed.

Mathih13 and others added 2 commits October 7, 2026 12:44
dungeons and the playerbots fixtures reached Core internals through
package-api exemptions to damage a target, remove a live Character,
refuse imported content, read the top threat target, cast as a client
and declare the next movement tick. They now call
crate::package_fixture, and the files that name it carry the
debug_reducers file gate the lint requires.

dungeons has no exemption left.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c1a40a0a-4833-4a21-9cfe-54ee28adcc4c
📥 Commits

Reviewing files that changed from the base of the PR and between 428f649 and a293837.

📒 Files selected for processing (4)
  • .github/workflows/core-tip.yml
  • .github/workflows/playerbots-capacity.yml
  • .github/workflows/playerbots-class-behavior.yml
  • .github/workflows/playerbots-target-claims.yml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

CI workflows now pin LyraCore to a newer commit. Fixture reducers use shared package fixture APIs for several operations, and several fixture modules now require the debug_reducers feature.

Changes

LyraCore Checkout Revision

Layer / File(s) Summary
Update workflow checkout references
.github/workflows/core-tip.yml, .github/workflows/playerbots-capacity.yml, .github/workflows/playerbots-class-behavior.yml, .github/workflows/playerbots-target-claims.yml
The workflows now check out LyraCore at aa97e268610e6ac5ffd7d16eecfff678f86ee8fb instead of the previous commit.

Fixture API Alignment

Layer / File(s) Summary
Gate fixtures and use package fixture APIs
dungeons/src/deadmines_verify.rs, playerbots/src/acceptance_fixture.rs, playerbots/src/companion_acceptance_fixture.rs, playerbots/src/fixture.rs
Fixture modules use file-level debug_reducers gating where described. Deadmines and Playerbots fixtures replace selected direct calls with package fixture APIs.
Centralize imported-content and navigation checks
playerbots/src/fixture/target_claims.rs, playerbots/src/quest_catalog_fixture.rs, playerbots/src/transfer_destination_fixture.rs
Target-claim, quest-catalog, and transfer-destination fixtures call the package imported-content guard. Transfer-destination checks use the imported navigation revision for the destination map.
Delegate transfer staging operations
playerbots/src/transfer_assist_fixture.rs, playerbots/src/transfer_fixture.rs, playerbots/src/transfer_lifecycle_fixture.rs, playerbots/src/transfer_orders_fixture.rs
Transfer fixtures delegate live-character removal and movement-tick declarations to package fixture APIs instead of directly editing world entities or schedule rows.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~15 minutes

Change: Refactor

Suggested reviewers: perpersen

Merge Risk: ⚪ Minimal · up to a2938

The workflows use a compatible Core revision, and no current merge-blocking regression is established in the supplied change context.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 57.14% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 56 functions across 11 files. (4 skipped:… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: moving fixtures from Core internals to the Package fixture root.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 57.14% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 56 functions across 11 files. (4 skipped: 4 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…root

# Conflicts:
#	.github/workflows/core-tip.yml
#	.github/workflows/playerbots-capacity.yml
#	.github/workflows/playerbots-class-behavior.yml
#	.github/workflows/playerbots-target-claims.yml
@Mathih13
Mathih13 merged commit ea3e4f8 into main Oct 7, 2026
12 checks passed
@Mathih13
Mathih13 deleted the feat/package-fixture-root branch October 7, 2026 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant