mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-19 00:56:16 +00:00
Issue #253 ("Edits to local Presets.xml don't propagate to :8090/presets") has a three-hop propagation chain — disk → marge, marge → device (via notification or power_on), device → :8090. Only the first hop is in our reach; if it's broken, neither of the others can recover. This test writes presets_v1.xml directly to the datastore (mimicking the reporter's hand-edit), calls PresetsToXML, asserts the v1 markers (itemName "Initial Station", location s..INITIAL) land in the rendered bytes. It then overwrites with presets_v2.xml and calls PresetsToXML again, asserting: - v2 markers ("Edited Station", s..EDITED) land, - v1 markers are gone. Current AfterTouch passes both assertions — disk→marge is sound, so the reporter's symptom must originate downstream (notification trigger missing, device-side firmware behaviour, or both). That narrows the investigation surface for whoever picks up #253 next. If this test ever flips (a caching layer is added without proper invalidation, an in-memory presets handle is held across edits), the fix is to invalidate the cache on disk write rather than weaken the test — that contract is what the reporter relies on. Pattern mirrors recents_sourceproviderid_regression_test.go: write XML directly into the temp datastore filesystem and exercise the marge function the handler calls (PresetsToXML at marge.go:370). Fakespeaker isn't involved here — the failure surface is server-side, not in what the device emits. Refs #253. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>