OneLiteFeatherNET / OneLiteFeatherNET/Voyager
migrate: switch server test dependency from net.minestom:testing to Cyano
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 0
- Forks
- 0
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 12
Description
Description
The server module currently uses the upstream Minestom testing module (net.minestom:testing) for its test harness. The team maintains its own test framework — Cyano (net.onelitefeather:cyano, see OneLiteFeatherNET/Cyano) — which is the preferred replacement, delivered via the Mycelium BOM.
API surface change (minimal):
| Before | After |
|---|---|
@EnvTest (upstream annotation) |
@ExtendWith(MicrotusExtension.class) |
testImplementation(libs.minecraft.minestom.testing) |
Cyano via Mycelium BOM |
The Env interface (net.minestom.testing.Env) remains the same — test bodies need no logic changes, only the class-level annotation changes.
Affected Files
settings.gradle.kts— version catalog entryminecraft.minestom.testing(line 25); add Cyano + Mycelium BOM entriesserver/build.gradle.kts— replacetestImplementation(libs.minecraft.minestom.testing)with Cyano dependency- 15 test files under
server/src/test/that carry@EnvTest:net/elytrarace/server/VoyagerServerTest.javanet/elytrarace/server/ecs/GameEntityFactoryTest.javanet/elytrarace/server/ecs/component/HudComponentTest.javanet/elytrarace/server/ecs/system/ElytraPhysicsSystemTest.javanet/elytrarace/server/ecs/system/FireworkBoostSystemTest.javanet/elytrarace/server/ecs/system/OutOfBoundsSystemTest.javanet/elytrarace/server/ecs/system/RingCollisionSystemTest.javanet/elytrarace/server/ecs/system/RingEffectSystemTest.javanet/elytrarace/server/game/GameLoopSystemTest.javanet/elytrarace/server/game/GameOrchestratorTest.javanet/elytrarace/server/perf/EcsGameLoopLoadTest.javanet/elytrarace/server/phase/MinestomEndPhaseRankingTest.javanet/elytrarace/server/player/PlayerServiceTest.javanet/elytrarace/server/scoring/ScoringServiceTest.javanet/elytrarace/server/world/AnvilMapInstanceServiceTest.java
Acceptance Criteria
-
settings.gradle.ktsversion catalog declares the Cyano library (via Mycelium BOM or explicit coordinates);minecraft.minestom.testingis removed or kept only if still required by another module -
server/build.gradle.ktsuses Cyano astestImplementationinstead oflibs.minecraft.minestom.testing - All 15
@EnvTestannotations are replaced with@ExtendWith(MicrotusExtension.class)(import:net.minestom.testing.extension.MicrotusExtension) -
./gradlew :server:testpasses with zero failures after migration -
CLAUDE.mdis updated to document the Cyano testing pattern (replace any mention of@EnvTest/minestom.testingwith the new pattern)
Technical Details
- Cyano coordinates:
net.onelitefeather:cyano(check Mycelium BOM for the exact version pin) Envinterface stays atnet.minestom.testing.Env— no changes to test method signatures or injection points- The version catalog in this project is defined programmatically in
settings.gradle.ktsunderdependencyResolutionManagement { versionCatalogs { ... } }— do NOT creategradle/libs.versions.toml - The existing
aonyx-bom(net.onelitefeather:aonyx-bom:0.7.0) is already declared; check whether the Mycelium BOM is a separate artifact or already transitively included
Dependencies
None — this is a test-scope change only and does not affect production classpath or runtime behavior.
Estimate
S — mechanical find-and-replace across 15 files plus two build files; no logic changes required.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the version catalog in settings.gradle.kts and the test dependency in server/build.gradle.kts, checking the Mycelium BOM for Cyano's version. Update the 15 listed server tests and review CLAUDE.md for the old testing pattern. Run ./gradlew :server:test; done means the old dependency and annotations are replaced, documentation is updated, and all tests pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system, testing
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100