шпион не обнаруживает вызов функции sinonjs

#javascript #cypress #sinon

Вопрос:

Для тестов веб-сайта я использую Cypress. У меня есть несколько пользовательских событий, и я использую cy.spy. В первый раз это работает нормально, но если я запускаю функцию во второй раз сразу после первого раза, в ней всегда говорится, что «ожидаемый «тест» был вызван с аргументами «тест», но он никогда не вызывался». Я также попробовал подождать, но это ничего не изменило.

 Cypress.Commands.add('waitForEvent', (event, absoluteSelector, expectedURL) => {
      cy.window().then((win) => {
          const spyFuncName = expectedURL,
              spyObj = {},
              eventCallback = function(e) {
                  win.removeEvent(event, win.document, eventCallback);
                  console.log("WANTED", e.data.url);
                  spyObj[spyFuncName](e.data.url);
              }
  
              spyObj[spyFuncName] = function(eventUrl) {
                  console.log("WANTED", "Spy: "   eventUrl);
              }
          
          cy.spy(spyObj, spyFuncName);
          win.addEvent(event, win.document, eventCallback);
    
          cy.get(absoluteSelector)
            .click()
            .then(() => {
                expect(spyObj[spyFuncName]).to.be.calledWith(expectedURL);
          });
      });
  })
 

Версия Cypress: 7.6.0