Update workflow and dataset tests leave the fetch, selection, check, and incremental paths untested
Original description
By MelanX · October 23, 2026Crate: tools/minecraft-options
Commit: 2b2af1e4f8166d02e4732d19e040a53745d97a51
Behavior
The existing tests do kill every mutation tried against merge, validate, the codecs, and summarize, but nothing outside summarize, application_review_reasons, and analyzer_command is tested: select_release, client_jar hash failure, normalized_records, main and --check, atomic writes, and CLI errors. There is no test for the incremental unknown case the README promises (test_dataset.py:284 covers unsupported only for a single from-scratch merge), a data_version-only change moving the revision, re-folding an older release, folding an older release into a newer dataset, or a registry-metadata-only change. In test_update.py, assertNotEqual(root, str(cache/"jars")+"/") can never fail because str(jar.parent) has no trailing slash. No test asserts that nothing is written when a review notice appears.
Expected behavior
Offline tests cover release selection (stable only, floor, unknown version), hash failure, --check semantics, incremental and re-fold behavior, revision bumping, and the summary text.
Impact
The bugs in the linked dataset and update issues have no test that would fail on them.
Locations
tools/minecraft-options/test_update.py(11-21, 55-65)tools/minecraft-options/test_dataset.py(241, 284)
Validation and limitations
Mutation pass (15 mutants) on a scratch copy; the missing coverage was confirmed by reading the tests.