Skip to content

Commit e62e04f

Browse files
committed
add tests for useEventListener
1 parent d58d027 commit e62e04f

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import * as React from "react";
2+
import { render, fireEvent, cleanup } from "@reach-internal/test/utils";
3+
import { afterEach, describe, expect, it, vi } from "vitest";
4+
import { useEventListener } from "@reach/utils";
5+
6+
afterEach(cleanup);
7+
8+
describe("useEventListener", () => {
9+
const Test = ({ onBodyClick }: { onBodyClick: () => void }) => {
10+
useEventListener("click", onBodyClick, document.body);
11+
return null;
12+
};
13+
14+
it("should call event listener when it's need", () => {
15+
const handleBodyClick = vi.fn();
16+
render(<Test onBodyClick={handleBodyClick} />);
17+
fireEvent.click(document.body);
18+
expect(handleBodyClick).toHaveBeenCalledTimes(1);
19+
fireEvent.click(document.body);
20+
expect(handleBodyClick).toHaveBeenCalledTimes(2);
21+
});
22+
23+
it("should can change event listener from args", () => {
24+
const handleBodyClick1 = vi.fn();
25+
const handleBodyClick2 = vi.fn();
26+
const { rerender } = render(<Test onBodyClick={handleBodyClick1} />);
27+
fireEvent.click(document.body);
28+
rerender(<Test onBodyClick={handleBodyClick2} />);
29+
fireEvent.click(document.body);
30+
expect(handleBodyClick1).toHaveBeenCalledOnce();
31+
expect(handleBodyClick2).toHaveBeenCalledOnce();
32+
});
33+
});

0 commit comments

Comments
 (0)