In hotmeal-wasm/tests/wasm.spec.ts:
// Run fuzzing with different seeds for reproducibility
// Note: Complex mutations may expose edge cases in the diff algorithm
// For now, we use simpler mutations (text changes only) that are well-supported
This is backwards. The entire purpose of fuzzing is to expose edge cases in the diff algorithm. We must support arbitrary mutations, not avoid them because they might find bugs.
The fuzzer should:
- Add/remove/reorder elements
- Change element types
- Nest/unnest elements
- Move elements between parents
- All the complex mutations that real DOM diffing needs to handle
If complex mutations expose bugs, we fix the bugs - we don't lobotomize the fuzzer.
In
hotmeal-wasm/tests/wasm.spec.ts:This is backwards. The entire purpose of fuzzing is to expose edge cases in the diff algorithm. We must support arbitrary mutations, not avoid them because they might find bugs.
The fuzzer should:
If complex mutations expose bugs, we fix the bugs - we don't lobotomize the fuzzer.