Angular2 testing a rejected promise with fakeAsync
<p>I'm trying to test a service I've built that does some async work in behind the scenes.  Keep in mind I'm using mocks that are immediately resolving a promise so no real async work actually happens.</p>

<p>My test looks like this:</p>

<pre><code>it('should reject promise when condition is met',
  inject([MyService], fakeAsync((myService: MyService) =&gt; {
    let rejected = false;

    myService.doSomeAsyncWork().catch(() =&gt; {
      rejected = true;
    });
    tick();

    expect(rejected).toBe(true);
  }))
);
</code></pre>

<p>When I run this I get the following error:</p>

<pre><code>Error: 2 timer(s) still in the queue.
</code></pre>

<p>If I change tick() to be tick(1000) then it tells me only 1 timer is still in the queue.  If I call tick() multiple times it makes no difference.</p>

<p>What am I doing wrong?</p>

<p>Thanks!</p>