See https://github.com/ReactiveX/rxjs/blob/master/doc/marble-testing.md The current tests are hard to reason about and some use hacky `setTimeout`s just to make it work. This could possibly be improved by using marbles.