We will mix control and data flow in our test sequences.
- Start -> Spinning -> Ready
- Start -> Spinning -> Error
- Start -> Error
- Start -> Ready
- run operation (none | some) x timeout (any | default)
- ready (no data | data)
- error (no data | data)
TODO: because of some generator runtime error(?)
RegExp: [START | TIMER_EXPIRED | SUCCEEDED | ERROR ]+
- Start -> Spinning -> Ready
- No run:
- emit timer | render fallback | render main
- run:
- run task | emit timer | render fallback | render main
- No run:
- Start -> Spinning -> Error
- No run:
- emit timer | render fallback | render error
- run:
- run task | emit timer | render fallback | render error
- No run:
- Start -> Ready
- No run:
- emit timer | render main
- run:
- run task | emit timer | render main
- No run:
- Start -> Error
- No run:
- emit timer | render main
- run:
- run task | emit timer | render main
- No run:
Abstracting null commands:
- emit timer is always there
- run task command is always before emit timer when present
- render main is last when present
- render error is last when present
- the render fallback command when present is always immediately after emit timer