diff --git a/__tests__/pages/miscPages2.test.tsx b/__tests__/pages/miscPages2.test.tsx index c43698ec6a..b8ce21a59c 100644 --- a/__tests__/pages/miscPages2.test.tsx +++ b/__tests__/pages/miscPages2.test.tsx @@ -1,21 +1,19 @@ import WillowShield from "@/app/museum/genesis/willow-shield/page"; import JoinOm from "@/app/om/join-om/page"; import PartnershipRequest from "@/app/om/partnership-request/page"; -import ConsolidatedMetrics from "@/app/open-data/network-metrics/page"; import MemeSubscriptions from "@/app/open-data/meme-subscriptions/page"; +import ConsolidatedMetrics from "@/app/open-data/network-metrics/page"; import AddRememes from "@/app/rememes/add/page"; import SlideInitiatives from "@/app/slide-page/6529-initiatives/page"; import AppWallets from "@/app/tools/app-wallets/page"; import { AppWalletsProvider } from "@/components/app-wallets/AppWalletsContext"; import { AuthContext } from "@/components/auth/Auth"; -import { NextGenCollection } from "@/entities/INextgen"; -import NextgenCollectionMintingPlan from "@/components/nextGen/collections/collectionParts/mint/NextgenCollectionMintingPlan"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { render, screen } from "@testing-library/react"; +import { redirect } from "next/navigation"; import React, { useMemo } from "react"; import { mainnet } from "viem/chains"; import { WagmiProvider, createConfig, http } from "wagmi"; -import { redirect } from "next/navigation"; jest.mock("next/dynamic", () => () => () =>
); jest.mock("@/components/pdfViewer/PdfViewer", () => () => ( @@ -31,7 +29,11 @@ jest.mock("@/services/api/common-api", () => ({ commonApiFetch: jest.fn(() => Promise.resolve({ data: [] })), })); global.fetch = jest.fn(() => - Promise.resolve({ json: () => Promise.resolve({}) }) + Promise.resolve({ + ok: true, + status: 200, + json: () => Promise.resolve({ data: [], count: 0 }), + }) ) as any; // Mock TitleContext @@ -75,7 +77,8 @@ jest.mock("@/components/cookies/CookieConsentContext", () => ({ showBanner: false, setShowBanner: jest.fn(), }), - CookieConsentProvider: ({ children }: { children: React.ReactNode }) => children, + CookieConsentProvider: ({ children }: { children: React.ReactNode }) => + children, })); const TestProvider: React.FC<{ children: React.ReactNode }> = ({ @@ -104,8 +107,12 @@ describe("misc pages render", () => { it("renders NextGen distribution plan page", () => { // Mock the component itself since it has complex dependencies - const MockComponent = () =>
NextGen Distribution Plan
; - + const MockComponent = () => ( +
+ NextGen Distribution Plan +
+ ); + render( @@ -174,13 +181,11 @@ describe("misc pages render", () => { const Wrapper = ({ children }: { children: React.ReactNode }) => ( - - {children} - + {children} ); - + render(, { wrapper: Wrapper }); expect(screen.getByText(/add ReMemes/i)).toBeInTheDocument(); }); diff --git a/components/user/stats/UserPageStatsBoostBreakdown.tsx b/components/user/stats/UserPageStatsBoostBreakdown.tsx index 1c79e3c5e1..8f03036661 100644 --- a/components/user/stats/UserPageStatsBoostBreakdown.tsx +++ b/components/user/stats/UserPageStatsBoostBreakdown.tsx @@ -65,26 +65,25 @@ export default function UserPageStatsBoostBreakdown({ return baseRows; } - const extraRows = [ - getMemeRow("SZN1", bb.memes_szn1), - ...(bb.memes_szn1?.acquired - ? [] - : [ - getMemeRow("Genesis Set", bb.memes_genesis), - getMemeRow("Nakamoto", bb.memes_nakamoto), - ]), - getMemeRow("SZN2", bb.memes_szn2), - getMemeRow("SZN3", bb.memes_szn3), - getMemeRow("SZN4", bb.memes_szn4), - getMemeRow("SZN5", bb.memes_szn5), - getMemeRow("SZN6", bb.memes_szn6), - getMemeRow("SZN7", bb.memes_szn7), - getMemeRow("SZN8", bb.memes_szn8), - getMemeRow("SZN9", bb.memes_szn9), - getMemeRow("SZN10", bb.memes_szn10), - getMemeRow("SZN11", bb.memes_szn11), - getMemeRow("SZN12", bb.memes_szn12), - ]; + const seasonKeys = Object.keys(bb) + .filter((key): key is `memes_szn${number}` => /^memes_szn\d+$/.test(key)) + .sort((a, b) => { + const numA = Number.parseInt(a.replace("memes_szn", ""), 10); + const numB = Number.parseInt(b.replace("memes_szn", ""), 10); + return numA - numB; + }); + + const extraRows = seasonKeys.flatMap((key) => { + const sznNum = key.replace("memes_szn", ""); + const rows = [getMemeRow(`SZN${sznNum}`, bb[key])]; + if (key === "memes_szn1" && !bb[key]?.acquired) { + rows.push( + getMemeRow("Genesis Set", bb.memes_genesis), + getMemeRow("Nakamoto", bb.memes_nakamoto) + ); + } + return rows; + }); return [...baseRows, ...extraRows]; } diff --git a/entities/ISeason.ts b/entities/ISeason.ts index f308675af0..82da882165 100644 --- a/entities/ISeason.ts +++ b/entities/ISeason.ts @@ -5,4 +5,5 @@ export interface MemeSeason { count: number; name: string; display: string; + boost: number; } diff --git a/entities/ITDH.ts b/entities/ITDH.ts index 6aeac1fee7..024430960f 100644 --- a/entities/ITDH.ts +++ b/entities/ITDH.ts @@ -13,18 +13,7 @@ interface BaseTDH { boost: number; boost_breakdown: { memes_card_sets: TDHBoostBreakdown; - memes_szn1: TDHBoostBreakdown; - memes_szn2: TDHBoostBreakdown; - memes_szn3: TDHBoostBreakdown; - memes_szn4: TDHBoostBreakdown; - memes_szn5: TDHBoostBreakdown; - memes_szn6: TDHBoostBreakdown; - memes_szn7: TDHBoostBreakdown; - memes_szn8: TDHBoostBreakdown; - memes_szn9: TDHBoostBreakdown; - memes_szn10: TDHBoostBreakdown; - memes_szn11: TDHBoostBreakdown; - memes_szn12: TDHBoostBreakdown; + [key: `memes_szn${number}`]: TDHBoostBreakdown; memes_genesis: TDHBoostBreakdown; memes_nakamoto: TDHBoostBreakdown; gradients: TDHBoostBreakdown;