Skip to content

Commit 5851d75

Browse files
authored
Merge pull request #6 from tigerabrodi/adhere-to-testing-lib-practices
Adhere to testing lib practices
2 parents 191f69e + 5d85e7f commit 5851d75

6 files changed

Lines changed: 45 additions & 14 deletions

File tree

package-lock.json

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
"@babel/preset-env": "^7.13.15",
5353
"@babel/preset-typescript": "7.13.0",
5454
"@testing-library/jest-dom": "^5.11.9",
55+
"@testing-library/user-event": "^13.5.0",
5556
"@types/jest": "^26.0.20",
5657
"babel-jest": "^27.0.0",
5758
"babel-preset-solid": "^1.0.0",

src/__tests__/basic.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import "@testing-library/jest-dom/extend-expect";
22
import { createSignal, createEffect } from "solid-js";
3-
import { fireEvent, render } from "..";
3+
import { render, screen } from "..";
4+
import userEvent from "@testing-library/user-event";
45

56
declare global {
67
var _$HYDRATION: Record<string, any>;
@@ -24,12 +25,12 @@ test("render calls createEffect immediately", () => {
2425
test("findByTestId returns the element", async () => {
2526
let ref!: HTMLDivElement;
2627

27-
const { findByTestId } = render(() => <div ref={ref} data-testid="foo" />);
28+
render(() => <div ref={ref} data-testid="foo" />);
2829

29-
expect(await findByTestId("foo")).toBe(ref);
30+
expect(await screen.findByTestId("foo")).toBe(ref);
3031
});
3132

32-
test("fireEvent triggers createEffect calls", () => {
33+
test("userEvent triggers createEffect calls", () => {
3334
const cb = jest.fn();
3435

3536
function Counter() {
@@ -45,7 +46,7 @@ test("fireEvent triggers createEffect calls", () => {
4546
} = render(() => <Counter />);
4647

4748
cb.mockClear();
48-
fireEvent.click(buttonNode!);
49+
userEvent.click(buttonNode! as Element);
4950
expect(buttonNode).toHaveTextContent("1");
5051
expect(cb).toHaveBeenCalledTimes(1);
5152
});

src/__tests__/debug.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ afterEach(() => {
1313
test("debug pretty prints the container", () => {
1414
const HelloWorld = () => <h1>Hello World</h1>;
1515

16-
const { debug } = render(() => <HelloWorld />);
16+
render(() => <HelloWorld />);
1717

18-
debug();
18+
screen.debug();
1919

2020
expect(console.log).toHaveBeenCalledTimes(1);
2121
expect(console.log).toHaveBeenCalledWith(expect.stringContaining("Hello World"));
@@ -29,9 +29,9 @@ test("debug pretty prints multiple containers", () => {
2929
</>
3030
);
3131

32-
const { debug } = render(() => <HelloWorld />);
32+
render(() => <HelloWorld />);
3333
const multipleElements = screen.getAllByTestId("testId");
34-
debug(multipleElements);
34+
screen.debug(multipleElements);
3535
expect(console.log).toHaveBeenCalledTimes(2);
3636
expect(console.log).toHaveBeenCalledWith(expect.stringContaining("Hello World"));
3737
});

src/__tests__/events.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Dynamic } from "solid-js/web";
2-
import { fireEvent, render } from "..";
2+
import { render, fireEvent } from "..";
3+
import userEvent from "@testing-library/user-event";
34

45
const eventTypes = [
56
{
@@ -160,7 +161,7 @@ test("onInput works", () => {
160161
container: { firstChild: input }
161162
} = render(() => <input type="text" onInput={handler} />);
162163

163-
fireEvent.input(input!, { target: { value: "a" } });
164+
userEvent.type(input! as Element, "a");
164165

165166
expect(handler).toHaveBeenCalledTimes(1);
166167
});

src/__tests__/stopwatch.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
import userEvent from "@testing-library/user-event";
12
import { createSignal, onCleanup } from "solid-js";
2-
import { fireEvent, render } from "..";
3+
import { screen, render } from "..";
34

45
function StopWatch() {
56
const [lapse, setLapse] = createSignal(0);
@@ -38,9 +39,9 @@ const wait = (time: number) => new Promise(resolve => setTimeout(resolve, time))
3839
test("unmounts a component", async () => {
3940
jest.spyOn(console, "error").mockImplementation(() => {});
4041

41-
const { unmount, getByText, container } = render(() => <StopWatch />);
42+
const { unmount, container } = render(() => <StopWatch />);
4243

43-
fireEvent.click(getByText("Start") as Element);
44+
userEvent.click(screen.getByText("Start") as Element);
4445

4546
unmount();
4647

0 commit comments

Comments
 (0)