diff --git a/components/__tests__/ChipDistributionSummary.test.tsx b/components/__tests__/ChipDistributionSummary.test.tsx index f0ce2cb..d5a8221 100644 --- a/components/__tests__/ChipDistributionSummary.test.tsx +++ b/components/__tests__/ChipDistributionSummary.test.tsx @@ -1,5 +1,7 @@ import React from "react"; -import { render } from "@testing-library/react-native"; +import { Alert } from "react-native"; + +import { fireEvent, render } from "@testing-library/react-native"; import ChipDistributionSummary from "../ChipDistributionSummary"; jest.mock("@expo/vector-icons", () => { @@ -35,46 +37,23 @@ describe("ChipDistributionSummary Component", () => { }); }); - test.skip("renders fallback message when no valid distribution", () => { + test("renders warning message when needed", async () => { const { getByText } = render( ); - expect(getByText("No valid distribution calculated yet.")).toBeTruthy(); - }); + const warning = getByText("TestIcon"); + expect(warning).toBeTruthy(); - test.skip("scales down chips if exceeding MAX_CHIPS", () => { - const playerCount = 2; - let totalChipsCount = [300, 400, 500, 600, 700]; - const MAX_CHIPS = 500; - const totalChips = totalChipsCount.reduce((sum, count) => sum + count, 0); - - if (totalChips > MAX_CHIPS) { - const scaleFactor = MAX_CHIPS / totalChips; - totalChipsCount = totalChipsCount.map((count) => - Math.round(count * scaleFactor) - ); - } - - const expectedDistribution = [30, 40, 50, 60, 70]; // Adjust as per actual component calculations - - const { getByText } = render( - + jest.spyOn(Alert, "alert"); + fireEvent.press(warning); + expect(Alert.alert).toHaveBeenCalledWith( + "Warning", + `Be advised that the value of the distributed chips does not equal the buy-in for these inputs.\n\nHowever, results shown are fair to all players` ); - - expect(getByText("Distribution & Denomination")).toBeTruthy(); - - expectedDistribution.forEach((count) => { - expect(getByText(new RegExp(`^${count}\\s+chips:`, "i"))).toBeTruthy(); - }); }); }); diff --git a/components/__tests__/ChipsSelector.test.tsx b/components/__tests__/ChipsSelector.test.tsx index a81366d..4bbab86 100644 --- a/components/__tests__/ChipsSelector.test.tsx +++ b/components/__tests__/ChipsSelector.test.tsx @@ -3,9 +3,7 @@ import { userEvent, render, screen, - waitForElementToBeRemoved, fireEvent, - act, } from "@testing-library/react-native"; import ChipsSelector from "@/components/ChipsSelector"; @@ -83,27 +81,15 @@ describe("tests for ChipsSelector", () => { ]); }); - // skip: There is a jest/DOM issue with the button interaction, despite working correctly in-app. Documented to resolve. - it.skip("test dec/inc buttons", async () => { + it("test dec/inc buttons", async () => { rend(); - - const blue = screen.getByText(TOTAL_CHIPS_COUNT[3].toString()); - const black = screen.getByText(TOTAL_CHIPS_COUNT[4].toString()); const decrement = screen.getByRole("button", { name: /-/i }); const increment = screen.getByRole("button", { name: /\+/i }); fireEvent.press(decrement); - fireEvent.press(decrement); - - // Test that elements are removed after fireEvent - await waitForElementToBeRemoved(() => blue); - await waitForElementToBeRemoved(() => black); + expect(mockSetNumberOfChips).toHaveBeenCalledWith(4); fireEvent.press(increment); - fireEvent.press(increment); - - // Test that new elements re-appear, correctly - const blue1 = screen.getByText(TOTAL_CHIPS_COUNT[3].toString()); - const black1 = screen.getByText(TOTAL_CHIPS_COUNT[4].toString()); + expect(mockSetNumberOfChips).toHaveBeenCalledWith(4); }); });