poker-chips-helper/components/__tests__/PlayerSelector.test.tsx
MantashaNoyela 28addf53a5 Fixed issues
2025-03-16 16:08:07 -07:00

77 lines
2.1 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}
darkMode={false}
/>
);
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}
darkMode={false}
/>
);
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}
darkMode={false}
/>
);
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}
darkMode={false}
/>
);
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}
darkMode={false}
/>
);
fireEvent.press(getByRole("button", { name: "-" }));
expect(setPlayerCount).not.toHaveBeenCalled();
});
});