|
1 | 1 | import "@testing-library/jest-dom";
|
2 |
| -import RewardBadge from "@/components/badges/RewardBadge"; |
3 |
| -import { render, screen } from "@testing-library/react"; |
4 |
| -import Coin from "@/components/ui/Coin"; |
| 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 | +})); |
5 | 17 |
|
6 | 18 | describe("RewardBadges", () => {
|
7 | 19 | it("should render rewardBadges", () => {
|
8 |
| - render(<RewardBadge />); |
| 20 | + renderWithRedux(<RewardBadge {...mockRewardBadges} />); |
9 | 21 | const rewardBadge = screen.getByTestId("RewardBadge");
|
10 | 22 | expect(rewardBadge).toBeInTheDocument();
|
11 | 23 | });
|
12 |
| - |
13 |
| - it("should render rewardBadges with coins", () => { |
14 |
| - render(<RewardBadge />); |
15 |
| - render(<Coin />); |
16 |
| - const rewardBadge = screen.queryByTestId("RewardBadge"); |
| 24 | + it("should render rewardBadges with coin when the token is provide", () => { |
| 25 | + renderWithRedux(<RewardBadge reward={{ token: "BTC" }} />); |
| 26 | + const rewardBadge = screen.getByTestId("RewardBadge"); |
17 | 27 | const coin = screen.getByTestId("coin");
|
18 | 28 | expect(rewardBadge).toBeInTheDocument();
|
19 | 29 | expect(coin).toBeInTheDocument();
|
20 | 30 | });
|
| 31 | + |
21 | 32 | it("should render rewardBadges with amount and token", () => {
|
22 |
| - render(<RewardBadge reward={{ token: "BTC", amount: 1000 }} displayAmount={true} />); |
| 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 }} />); |
23 | 40 | const rewardBadge = screen.getByTestId("RewardBadge");
|
24 |
| - const coin = screen.getByTestId("coin"); |
25 |
| - const amount = screen.getByTestId("amount"); |
26 | 41 | expect(rewardBadge).toBeInTheDocument();
|
27 |
| - expect(coin).toBeInTheDocument(); |
28 |
| - expect(amount).toBeInTheDocument(); |
| 42 | + expect(rewardBadge).toHaveTextContent("0"); |
29 | 43 | });
|
30 | 44 | });
|
0 commit comments