ReadonlydestinationReadonlylistenerReadonlysourcesReadonlygainsReadonlypannersReadonlystreamWhat resume() does: flip to running (default) or stay suspended.
Leave the resume() promise UNSETTLED, which is what a real context
blocked by an autoplay policy does — it neither resolves nor rejects until
the policy is satisfied. A mock that always settles makes every
.then()/.catch() path look reachable when it is not.
The browser letting the context through later (a gesture satisfied the policy).
The fake context: node factories, decode, resume/suspend/close, a manual clock.