Skip to content

Add game tests for all mod advancements#194

Merged
rubensworks merged 2 commits intomaster-1.21-ltsfrom
copilot/add-game-tests-for-advancements
Feb 28, 2026
Merged

Add game tests for all mod advancements#194
rubensworks merged 2 commits intomaster-1.21-ltsfrom
copilot/add-game-tests-for-advancements

Conversation

Copy link
Contributor

Copilot AI commented Feb 28, 2026

Implements game tests to verify all advancements in ColossalChests can be obtained through the correct in-game mechanics as defined by their advancement JSON files.

New Tests (16 total)

  • testAdvancementRoot — fires INVENTORY_CHANGED trigger with a chest item
  • testAdvancementUncolossalServerPlayer places uncolossal chest, triggering placed_block
  • testAdvancementBase{Material} × 7 — builds a 2×2 chest with one wall missing, ServerPlayer places the final wall block, completing the chest and firing chest_formed
  • testAdvancementSize{Material} × 7 — same pattern but with a 10×10×10 chest (filling the existing empty10 template), satisfying minimumSize: 10

New Helpers

// Centralizes @SuppressWarnings("removal") for the deprecated API
private ServerPlayer makeMockServerPlayer(GameTestHelper helper) { ... }

// Triggers full block-placement mechanics (setPlacedBy → triggerDetector → criterion trigger)
private void placeBlockAsServerPlayer(GameTestHelper helper, ServerPlayer serverPlayer, BlockPos pos, Block block) { ... }

// Looks up advancement by ResourceLocation and asserts isDone()
private void assertAdvancementDone(GameTestHelper helper, ServerPlayer player, ResourceLocation advancementId) { ... }

All tests exercise the real trigger chain — placing a block as a ServerPlayer goes through BlockItem.place()setPlacedBy()triggerDetector() → criterion trigger → advancement grant — rather than firing triggers directly.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • maven.fabricmc.net
    • Triggering command: /opt/hostedtoolcache/Java_Microsoft_jdk/21.0.2/x64/bin/java /opt/hostedtoolcache/Java_Microsoft_jdk/21.0.2/x64/bin/java --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx3G -Dfile.encoding=UTF-8 -Duser.country -Duser.language=en -Duser.variant -cp /home/REDACTED/.gradle/wrapper/dists/gradle-8.8-bin/dl7vupf4psengwqhwktix4v1/gradle-8.8/lib/gradle-launcher-8.8.jar -javaagent:/home/REDACTED/.gradle/wrapper/dists/gradle-8.8-bin/dl7vupf4psengwqhwktix4v1/gradle-8.8/lib/agents/gradle-instrumentation-agent-8.8.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 8.8 vupf4psengwqhwktix4v1/gradle-8.8/lib/agents/gradle-instrumentation-agent-8.8.jar 0/steps/unzipSources/unpacked/net/minecraft/tags/FluidTags.java (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

Co-authored-by: rubensworks <440384+rubensworks@users.noreply.github.com>
Copilot AI changed the title [WIP] Implement game tests for all advancements in mod Add game tests for all mod advancements Feb 28, 2026
@rubensworks rubensworks marked this pull request as ready for review February 28, 2026 11:50
@rubensworks rubensworks merged commit 6f8ad75 into master-1.21-lts Feb 28, 2026
5 checks passed
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.

2 participants