title: Sinon mock: check args of 2nd call only
body: <p>I'm testing a function that will make 2 calls to a mongo database, each one with different arguments. The function is called 'saveAchProgress' and will make 2 'updateOne' requests to db.</p>
  
  <p>I'm using a mock cause I need to spy the function AND block the db calls at he same time (not connected to db during unit tests).</p>
  
  <p>I would like to check the arguments but only for the second db call</p>
  
  <p>I can easily manage to check calls 1 and 2 are properly made:</p>
  
  <pre><code>               it('should update if value &gt;= achNumber', async function (): Promise&lt;void&gt; {
                  mock.expects('updateOne').twice().returns('foo');
                  await achievementsServiceFunctions.saveAchProgress(1, 1);
                  mock.verify();
              });
  </code></pre>
  
  <p>However, when I check the arguments, I get an error with the arguments of the first call.</p>
  
  <pre><code>            it('should update game with right arguments: collection', async function (): Promise&lt;void&gt; {
                  mock.expects('updateOne').withArgs('game', sinon.match.any, sinon.match.any).returns('foo');
                  await achievementsServiceFunctions.saveAchProgress(1, 1);
                  mock.verify();
              });
  </code></pre>
  
  <p>I know sinon mock have their own way of check stuff but I couldn't find anything fitting my needs in sinon documentation. Is there a solution?</p>