mirror of
https://github.com/FluxaMedia/fluxa-core.git
synced 2026-07-28 20:52:48 +00:00
Per the robustness plan's §8: a tests/wire/ directory holds one real AppAction input per representative action family, each paired with a checked-in golden DispatchResult captured from an actual dispatch (a new #[cfg(test)] wire_fixtures_match_golden_dispatch_output test compares against it, with UPDATE_WIRE_FIXTURES=1 to regenerate when a change is intentional). Any future camelCase/field drift on the dispatch/completeEffect wire now fails in this repo instead of surfacing as a silent Android/desktop regression. Also add fuzz/fuzz_targets/engine_dispatch.rs, feeding arbitrary bytes into both headless_engine_dispatch_json and headless_engine_complete_effect_json against one engine handle — this is the one path in the crate that runs global engine-mutating logic without a catch_unwind guard on the desktop call path, so it's the highest-value fuzz target missing from fuzz/. Exposes the four headless_engine entry points as `pub` (still unreachable outside the crate except through the fuzzing-gated `fuzz_targets` re-export module) following the same pattern already used for parse_manifest and the content_identity helpers.
34 lines
671 B
JSON
34 lines
671 B
JSON
{
|
|
"effects": [
|
|
{
|
|
"generation": 1,
|
|
"id": "fx-1",
|
|
"payload": {
|
|
"actionName": "pause",
|
|
"itemId": "tt1",
|
|
"metaType": "movie",
|
|
"profile": null,
|
|
"progress": 42.5,
|
|
"token": "trakt-token"
|
|
},
|
|
"type": "enqueueTraktScrobble"
|
|
}
|
|
],
|
|
"state": {
|
|
"pendingEffects": [
|
|
{
|
|
"generation": 1,
|
|
"id": "fx-1",
|
|
"payload": {
|
|
"actionName": "pause",
|
|
"itemId": "tt1",
|
|
"metaType": "movie",
|
|
"profile": null,
|
|
"progress": 42.5,
|
|
"token": "trakt-token"
|
|
},
|
|
"type": "enqueueTraktScrobble"
|
|
}
|
|
]
|
|
}
|
|
}
|