0

私のコードは最終的なエラーをスローしないと断言したいと思います。

問題は、コードが DOM 操作を実行し、非同期反応をトリガーすることです。

const slot = document.createElement('slot');
myElement.attachShadow({mode:'open'}).appendChild(slot);
// ...
  slot.addEventListener('slotchange', function badFunction(){
    throw "MyError";
    // const observer = new MutationObserver(()=>{});
    // observer.observe(null);
  });
// ...
it('when input child element is removed, should not throw an error', function() {
    function disconnect(){
        // this will throw once slotchange is emmited
        myElement.removeChild(myElement.firstElementChild);
    }
    expect(disconnect).not.to.throw();
});

https://how-to-assert-async-throw.glitch.me/

エラーが最終的にスローされる場合でも、上記のコードはテストに合格します。

4

1 に答える 1