Skip to content

Paper E2E v1.3.0

Choose a tag to compare

@Drownek Drownek released this 21 Apr 17:37

Features

  • Bot Lifecycle & Reconnection: Enhanced bot connection management and lifecycle handling. PlayerWrapper now dynamically uses getters for inventory and username to ensure accurate values even after reconnects.
  • New Assertions: Added rejects.toThrow for asserting promise rejections in tests, and added a since option to the toHaveReceivedMessage matcher to tightly scope chat buffer assertions.
  • Stability Utilities: Added a new waitForStable utility for asserting that a condition remains continuously true over a given duration.
  • Movement Threshold Adjustments: The Gradle plugin now automatically configures spigot.yml to increase movement thresholds (moved-wrongly-threshold and moved-too-quickly-multiplier), preventing the server from kicking teleporting test bots.
  • Server Log Validation: Added server log validation capabilities and refactored command execution buffering.
  • Runner Banner: Added a styled execution banner displaying the current framework version during test runs.

Bug Fixes

  • Test Leakage (Zombie Tests): Introduced an AbortController and passed AbortSignal through the TestContext down to all polling utilities. This instantly terminates background execution when a test times out, permanently fixing cross-test contamination.
  • Server Process Cleanup: Fixed zombie Java processes. The entire Paper server process tree is now forcefully and reliably killed when a Gradle task is abruptly terminated or cancelled from an IDE.
  • Disconnect Hangs & Event Wiping: Eliminated 2-second teardown hangs by checking if bots are already disconnected, and removed destructive bot.removeAllListeners() calls that broke Mineflayer's internal packet handlers during teardown.
  • Bot Naming: Fixed a race condition where undefined could occasionally appear as a bot's username before the server handshake completed.
  • CI Pipeline: Fixed the CI workflow by ensuring the runner-package is properly built before E2E tests are executed.

Refactoring & Chore

  • API Simplification: Simplified the internal test runner API and removed unused legacy code.
  • Build & Typing: Added rimraf for clean builds and introduced a typecheck script for strict static type validation without emitting files.
  • GitHub Actions: Added comprehensive E2E testing workflows using GitHub Actions and updated CI environments to use Node.js 22.
  • Documentation: Simplified README setup instructions to directly link to the Wiki.
  • Wiki: Updated the Wiki (Configuration.md, Getting-Started.md, GUI-Testing.md, TypeScript-Support.md) with the 1.3.0 version bumps and modern API usage.