Previously, in older versions of D3, you were able to create unit tests that checked the state of a D3 component after all transitions had finished by flushing the timer with d3.timer.flush(). However, in D3 version 4, this has changed to d3.timerFlush(), but it seems to only complete the first transition instead of all.
After reading https://groups.google.com/forum/#!topic/d3-js/BioLtR9ixYE, it appears that one solution is to use an async testing framework like tape. Unfortunately, I am unable to switch my test runner at this time.
Any suggestions or ideas?