Implement createResource(asyncFn) returning { read }:
read(): throws the pending Promise (Suspense pattern).solve(scenarios) simulates calls. Returns final state for each scenario.
Each scenario: { delay, value, error }. The harness awaits the promise then re-reads.
Sample tests