|
| 1 | +import "@testing-library/jest-dom"; |
| 2 | +import RewardBadge, { RewardBadgeProps } from "@/components/badges/RewardBadge"; |
| 3 | +import { screen } from "@testing-library/react"; |
| 4 | +import { renderWithRedux } from "@__mocks__/renderWithRedux"; |
| 5 | + |
| 6 | +const mockRewardBadges: RewardBadgeProps = { |
| 7 | + type: "transparent", |
| 8 | + reward: { |
| 9 | + token: "BTC", |
| 10 | + amount: 2, |
| 11 | + }, |
| 12 | + displayAmount: true, |
| 13 | +}; |
| 14 | +jest.mock("../../../src/utilities", () => ({ |
| 15 | + shortenNumber: (num: number) => `shortened-${num}`, |
| 16 | +})); |
| 17 | + |
| 18 | +describe("RewardBadges", () => { |
| 19 | + it("should render rewardBadges", () => { |
| 20 | + renderWithRedux(<RewardBadge {...mockRewardBadges} />); |
| 21 | + const rewardBadge = screen.getByTestId("RewardBadge"); |
| 22 | + expect(rewardBadge).toBeInTheDocument(); |
| 23 | + }); |
| 24 | + it("should render rewardBadges with coin when the token is provide", () => { |
| 25 | + renderWithRedux(<RewardBadge reward={{ token: "BTC" }} />); |
| 26 | + const rewardBadge = screen.getByTestId("RewardBadge"); |
| 27 | + const coin = screen.getByTestId("coin"); |
| 28 | + expect(rewardBadge).toBeInTheDocument(); |
| 29 | + expect(coin).toBeInTheDocument(); |
| 30 | + }); |
| 31 | + |
| 32 | + it("should render rewardBadges with amount and token", () => { |
| 33 | + renderWithRedux(<RewardBadge reward={{ token: "BTC", amount: 1000 }} displayAmount={true} />); |
| 34 | + const text = screen.getByText("shortened-1000 BTC"); |
| 35 | + expect(text).toBeInTheDocument(); |
| 36 | + }); |
| 37 | + |
| 38 | + it('should display "0" when the reward amount is 0 and token is empty', () => { |
| 39 | + renderWithRedux(<RewardBadge reward={{ token: "", amount: 0 }} />); |
| 40 | + const rewardBadge = screen.getByTestId("RewardBadge"); |
| 41 | + expect(rewardBadge).toBeInTheDocument(); |
| 42 | + expect(rewardBadge).toHaveTextContent("0"); |
| 43 | + }); |
| 44 | +}); |
0 commit comments