Blame
|
1 | # Testing |
||||||
| 2 | ||||||||
| 3 | ||||||||
| 4 | > **Documentation baseline:** VoxelCore `main` at `452b569` · 14 September 2026. |
|||||||
| 5 | > **Repository:** [https://github.com/VoxelHorizons/VoxelCore](https://github.com/VoxelHorizons/VoxelCore) |
|||||||
| 6 | ||||||||
| 7 | ||||||||
| 8 | VoxelCore combines focused unit/regression tests with real plugin-capable server smoke tests. |
|||||||
| 9 | ||||||||
| 10 | ## Unit/regression coverage |
|||||||
| 11 | ||||||||
| 12 | Current tests cover, among other behaviour: |
|||||||
| 13 | ||||||||
| 14 | - item compilation and multi-level inheritance; |
|||||||
| 15 | - missing parents, cycles, duplicate IDs and required-field validation; |
|||||||
| 16 | - deep immutability of compiled definition data; |
|||||||
| 17 | - YAML loading/discovery and strict schema handling; |
|||||||
| 18 | - stable render allocation and tombstone behaviour; |
|||||||
| 19 | - structured semantic-key typed indices and type-change rejection; |
|||||||
| 20 | - runtime reload rollback and successful publication; |
|||||||
| 21 | - `ItemManager` use of the active snapshot allocation; |
|||||||
| 22 | - platform version parsing, including Paper's build-qualified 26.2 version; |
|||||||
| 23 | - item metadata flag resolution; |
|||||||
| 24 | - deterministic Java pack output and modern rule generation; |
|||||||
| 25 | - 26.2 `min_format`/`max_format` pack metadata; |
|||||||
| 26 | - config migration preserving operator values; |
|||||||
| 27 | - unbound definitions being excluded from `item list`. |
|||||||
| 28 | ||||||||
| 29 | ## Real-server matrix |
|||||||
| 30 | ||||||||
| 31 | Validated exact servers: |
|||||||
| 32 | ||||||||
| 33 | 1. 1.12.2 |
|||||||
| 34 | 2. 1.13.2 |
|||||||
| 35 | 3. 1.14.4 |
|||||||
| 36 | 4. 1.19.4 |
|||||||
| 37 | 5. 1.20.5 |
|||||||
| 38 | 6. 1.21.4 |
|||||||
| 39 | 7. 26.2 |
|||||||
| 40 | ||||||||
| 41 | The smoke path goes beyond “plugin enabled”: it waits for the `VOXELCORE_READY` marker, exercises content/admin behaviour, verifies create → stored ContentID → identify round trips, validates/builds the exact resource-pack target, deliberately triggers a failed reload and confirms the old revision remains active, then restores valid content and confirms a successful new revision. |
|||||||
| 42 | ||||||||
| 43 | ## Fixture families |
|||||||
| 44 | ||||||||
| 45 | The repository currently carries `mvp-content`, `mvp-content-legacy` and `mvp-content-modern` fixtures so rendering boundaries can be exercised without pretending one authored render representation behaves identically on every client generation. |
|||||||