acvetkov / sinon-chrome

Testing chrome extensions with Node.js
ISC License
439 stars 48 forks source link

`calledWith(sinon.match(...))` matcher fails even when `calledWithMatch` passes #108

Open melink14 opened 3 years ago

melink14 commented 3 years ago

dependabot recently tried upgraded my sinon from 7.5 to 11.1 and I was surprised when my tests started failing.

Because they fail when I use native or chai sinon assertions but they don't fail if I use a normal sinon.spy() spy, I thought I would file an issue here. (Especially since the sinon inside of sinon-chrome is quite a bit older than 11.1)

Details: Assertion:

      expect(chrome.runtime.sendMessage).to.be.calledWith(
        //chrome.runtime.sendMessage.calledWith(
        sinon.match({
          type: 'xsearch',
          text: '先生test',
        })
      );

This fails with:

expected sendMessage to have been called with arguments match(type: xsearch, text: 先生test)
{ dictOption: "2", text: "先生test", type: "xsearch" } match(type: xsearch, text: 先生test)

If I swap the commented lines then it works great (and it also worked with sinon 7.5). This might be expected given sinon-chrome's support level but it seems odd that it works in some cases but not in others.