Jestでカスタムイベントのdispatchを検証する方法
4843 ワード
Jestでカスタムイベントのdispatchを検証する方法です。
調べてあまり情報出てこなかったのでメモ。
テスト対象
単純にセレクタと、カスタムイベント名を受け取ってイベントを発行する関数を対象とします。
trigger-custom-event.ts
export const triggerCustomEvent = (
selector: string,
eventName: string
): void => {
const target = document.querySelector(selector);
target?.dispatchEvent(new Event(eventName));
};
テストコード
dispachEventで指定のカスタムイベントが発行されたことを検証するので、対象のDOMのdispachEventをモックに差し替えます。
そして、mockのcallsで発行回数、発行イベント名を検証します。
trigger-custom-event.test.ts
import { triggerCustomEvent } from "../src/trigger-custom-event";
describe("custom actions", () => {
let spyDispatchEvent: jest.Mock;
beforeEach(() => {
spyDispatchEvent = jest.fn();
const target = document.querySelector("body");
target!.dispatchEvent = spyDispatchEvent;
});
it("カスタムイベントが発行される", () => {
triggerCustomEvent("body", "customEventName");
expect(spyDispatchEvent.mock.calls.length).toBe(1);
expect(spyDispatchEvent.mock.calls[0][0].type).toBe("customEventName");
});
});
Author And Source
この問題について(Jestでカスタムイベントのdispatchを検証する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/ryo2132/items/c334fa377dfeb9fcda14著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .