title: RxJs/Ngrx TestSheduler with simulated user input (Jasmine)
body: <p>I'm testing Ngrx store effects in an angular application. One of my effects has, as a side effect, a modal that pops up using the material MatDialog component.</p>
  
  <p>What I want to do is run a test where the effect is kicked off by an action, which triggers the mat dialog to appear. I then want to test clicking yes/no, and proceed with checking the resulting action (or lack thereof) afterwards.</p>
  
  <p>We are using rxjs-marbles for testing our store.</p>
  
  <p>RxJs doesn't exactly seem to have a huge abundance of examples, but I've gathered that I need to use the TestScheduler for this type of scenario. I'm not sure how it works, though. I'm doing lots of research and haven't made a ton of progress.</p>
  
  <p>Basically, as a marble, it looks like this:</p>
  
  <p><code>-a-b-c</code></p>
  
  <p>where <code>a</code> is the initial action, <code>b</code> is the click from the user within the dialog, and <code>c</code> is the result (<code>c</code> is optional, if the user clicks 'no', then there will be no resultant action.</p>
  
  <p>I'm not asking for anyone to write my code, just point me in the right direction. I'm about to start reading the source code for the TestScheduler to understand it better because I'm not even sure if it's what I should be using in this case.</p>
  
  <p>Basically, how might one go about writing a test like this, where there are observable streams coupled with simulated user input using marbles?</p>