The test-suite is already somewhat sizeable, but could be expanded to cover more potential edgecases.
(For all of the below, check if a test like that does not already exist)
- Tests that check that after unsubscribing the internal state of
observers in the various observables is as it should be. This should be tested for subjects and observables but also observables created from operators to see how this interacts with their subscriptions to the parent etc.
- Tests that what happens when you have observables/subjects/observables created from operators with a subscriber, then complete those and then you subscribe again
- In general test more scenarios of combineLatest, it is one of the more tricky operators that are likely to have bugs. Like what if you combine 2 subjects? Does triggering any of them now trigger the combined observable?
- More tests that try out the async version of procs and see what happens if you start triggering a bunch of things before you waitFor the futures. Maybe we care about the order of the futures that we await? Maybe we don't? Should become clear while writing the tests.
In general, if unclear how something should behave, then try and recreate it in rxjs.
They are a decent reference implementation in terms of behavior, particularly for the finer details. Sadly we can't completely rip their implementation given the differences between JS and nim, though that of course also has upsides.
The test-suite is already somewhat sizeable, but could be expanded to cover more potential edgecases.
(For all of the below, check if a test like that does not already exist)
observersin the various observables is as it should be. This should be tested for subjects and observables but also observables created from operators to see how this interacts with their subscriptions to the parent etc.In general, if unclear how something should behave, then try and recreate it in rxjs.
They are a decent reference implementation in terms of behavior, particularly for the finer details. Sadly we can't completely rip their implementation given the differences between JS and nim, though that of course also has upsides.