poker-chips-helper/components/__tests__/PlayerSelector.test.tsx
2025-02-09 13:53:12 -08:00

58 lines
1.9 KiB
TypeScript

import React from "react";
import { fireEvent, render } from "@testing-library/react-native";
import PlayerSelector from "@/components/PlayerSelector";
describe("PlayerSelector Component", () => {
it("renders the initial player count and buttons correctly", () => {
const setPlayerCount = jest.fn();
const { getByText, getByRole } = render(
<PlayerSelector playerCount={4} setPlayerCount={setPlayerCount} />
);
expect(getByText("Select Number of Players:")).toBeTruthy();
expect(getByText("4")).toBeTruthy();
expect(getByRole("button", { name: "-" })).toBeTruthy();
expect(getByRole("button", { name: "+" })).toBeTruthy();
});
it('increases player count when "+" button is pressed', () => {
const setPlayerCount = jest.fn();
const { getByRole } = render(
<PlayerSelector playerCount={4} setPlayerCount={setPlayerCount} />
);
fireEvent.press(getByRole("button", { name: "+" }));
expect(setPlayerCount).toHaveBeenCalledWith(5);
});
it('decreases player count when "-" button is pressed', () => {
const setPlayerCount = jest.fn();
const { getByRole } = render(
<PlayerSelector playerCount={4} setPlayerCount={setPlayerCount} />
);
fireEvent.press(getByRole("button", { name: "-" }));
expect(setPlayerCount).toHaveBeenCalledWith(3);
});
it("does not increase player count beyond 8", () => {
const setPlayerCount = jest.fn();
const { getByRole } = render(
<PlayerSelector playerCount={8} setPlayerCount={setPlayerCount} />
);
fireEvent.press(getByRole("button", { name: "+" }));
expect(setPlayerCount).not.toHaveBeenCalled();
});
it("does not decrease player count below 2", () => {
const setPlayerCount = jest.fn();
const { getByRole } = render(
<PlayerSelector playerCount={2} setPlayerCount={setPlayerCount} />
);
fireEvent.press(getByRole("button", { name: "-" }));
expect(setPlayerCount).not.toHaveBeenCalled();
});
});