diff --git a/videos/src/PortalPresentation.test.tsx b/videos/src/PortalPresentation.test.tsx index a729196..a12d77f 100644 --- a/videos/src/PortalPresentation.test.tsx +++ b/videos/src/PortalPresentation.test.tsx @@ -88,6 +88,12 @@ vi.mock("./scenes/portal/MeetupShowcaseScene", () => ({ )), })); +vi.mock("./scenes/portal/CountryStatsScene", () => ({ + CountryStatsScene: vi.fn(() => ( +
CountryStatsScene
+ )), +})); + vi.mock("./scenes/portal/TopMeetupsScene", () => ({ TopMeetupsScene: vi.fn(() => (
TopMeetupsScene
@@ -210,6 +216,12 @@ describe("PortalPresentation", () => { expect(scene).toBeInTheDocument(); }); + it("renders Scene 5: CountryStatsScene", () => { + const { container } = render(); + const scene = container.querySelector('[data-testid="country-stats-scene"]'); + expect(scene).toBeInTheDocument(); + }); + it("renders Scene 6: TopMeetupsScene", () => { const { container } = render(); const scene = container.querySelector('[data-testid="top-meetups-scene"]'); diff --git a/videos/src/PortalPresentation.tsx b/videos/src/PortalPresentation.tsx index ba0c3e4..e095392 100644 --- a/videos/src/PortalPresentation.tsx +++ b/videos/src/PortalPresentation.tsx @@ -4,6 +4,7 @@ import { PortalIntroScene } from "./scenes/portal/PortalIntroScene"; import { PortalTitleScene } from "./scenes/portal/PortalTitleScene"; import { DashboardOverviewScene } from "./scenes/portal/DashboardOverviewScene"; import { MeetupShowcaseScene } from "./scenes/portal/MeetupShowcaseScene"; +import { CountryStatsScene } from "./scenes/portal/CountryStatsScene"; import { TopMeetupsScene } from "./scenes/portal/TopMeetupsScene"; import { ActivityFeedScene } from "./scenes/portal/ActivityFeedScene"; import { CallToActionScene } from "./scenes/portal/CallToActionScene"; @@ -172,7 +173,7 @@ export const PortalPresentation: React.FC = () => { durationInFrames={sceneFrames.topLaender.duration} premountFor={fps} > - + {/* Scene 6: Top Meetups (10s) */} @@ -213,24 +214,3 @@ export const PortalPresentation: React.FC = () => { ); }; - -/** - * Placeholder component for scenes that haven't been implemented yet. - * Displays a centered scene name with visual indicators. - */ -const PlaceholderScene: React.FC<{ name: string; sceneNumber: number }> = ({ - name, - sceneNumber, -}) => { - return ( - -
-
- {sceneNumber} -
-

{name}

-

Scene placeholder

-
-
- ); -}; diff --git a/videos/src/PortalPresentationMobile.test.tsx b/videos/src/PortalPresentationMobile.test.tsx index bdfbf60..5e5169a 100644 --- a/videos/src/PortalPresentationMobile.test.tsx +++ b/videos/src/PortalPresentationMobile.test.tsx @@ -63,52 +63,58 @@ vi.mock("@remotion/media", () => ({ })); /* eslint-enable @remotion/warn-native-media-tag */ -// Mock all scene components -vi.mock("./scenes/portal/PortalIntroScene", () => ({ - PortalIntroScene: vi.fn(() => ( -
PortalIntroScene
+// Mock all mobile scene components +vi.mock("./scenes/portal/mobile/PortalIntroSceneMobile", () => ({ + PortalIntroSceneMobile: vi.fn(() => ( +
PortalIntroSceneMobile
)), })); -vi.mock("./scenes/portal/PortalTitleScene", () => ({ - PortalTitleScene: vi.fn(() => ( -
PortalTitleScene
+vi.mock("./scenes/portal/mobile/PortalTitleSceneMobile", () => ({ + PortalTitleSceneMobile: vi.fn(() => ( +
PortalTitleSceneMobile
)), })); -vi.mock("./scenes/portal/DashboardOverviewScene", () => ({ - DashboardOverviewScene: vi.fn(() => ( -
DashboardOverviewScene
+vi.mock("./scenes/portal/mobile/DashboardOverviewSceneMobile", () => ({ + DashboardOverviewSceneMobile: vi.fn(() => ( +
DashboardOverviewSceneMobile
)), })); -vi.mock("./scenes/portal/MeetupShowcaseScene", () => ({ - MeetupShowcaseScene: vi.fn(() => ( -
MeetupShowcaseScene
+vi.mock("./scenes/portal/mobile/MeetupShowcaseSceneMobile", () => ({ + MeetupShowcaseSceneMobile: vi.fn(() => ( +
MeetupShowcaseSceneMobile
)), })); -vi.mock("./scenes/portal/TopMeetupsScene", () => ({ - TopMeetupsScene: vi.fn(() => ( -
TopMeetupsScene
+vi.mock("./scenes/portal/mobile/CountryStatsSceneMobile", () => ({ + CountryStatsSceneMobile: vi.fn(() => ( +
CountryStatsSceneMobile
)), })); -vi.mock("./scenes/portal/ActivityFeedScene", () => ({ - ActivityFeedScene: vi.fn(() => ( -
ActivityFeedScene
+vi.mock("./scenes/portal/mobile/TopMeetupsSceneMobile", () => ({ + TopMeetupsSceneMobile: vi.fn(() => ( +
TopMeetupsSceneMobile
)), })); -vi.mock("./scenes/portal/CallToActionScene", () => ({ - CallToActionScene: vi.fn(() => ( -
CallToActionScene
+vi.mock("./scenes/portal/mobile/ActivityFeedSceneMobile", () => ({ + ActivityFeedSceneMobile: vi.fn(() => ( +
ActivityFeedSceneMobile
)), })); -vi.mock("./scenes/portal/PortalOutroScene", () => ({ - PortalOutroScene: vi.fn(() => ( -
PortalOutroScene
+vi.mock("./scenes/portal/mobile/CallToActionSceneMobile", () => ({ + CallToActionSceneMobile: vi.fn(() => ( +
CallToActionSceneMobile
+ )), +})); + +vi.mock("./scenes/portal/mobile/PortalOutroSceneMobile", () => ({ + PortalOutroSceneMobile: vi.fn(() => ( +
PortalOutroSceneMobile
)), })); @@ -210,6 +216,12 @@ describe("PortalPresentationMobile", () => { expect(scene).toBeInTheDocument(); }); + it("renders Scene 5: CountryStatsScene", () => { + const { container } = render(); + const scene = container.querySelector('[data-testid="country-stats-scene"]'); + expect(scene).toBeInTheDocument(); + }); + it("renders Scene 6: TopMeetupsScene", () => { const { container } = render(); const scene = container.querySelector('[data-testid="top-meetups-scene"]'); @@ -390,6 +402,7 @@ describe("PortalPresentationMobile mobile-specific", () => { expect(container.querySelector('[data-testid="portal-title-scene"]')).toBeInTheDocument(); expect(container.querySelector('[data-testid="dashboard-overview-scene"]')).toBeInTheDocument(); expect(container.querySelector('[data-testid="meetup-showcase-scene"]')).toBeInTheDocument(); + expect(container.querySelector('[data-testid="country-stats-scene"]')).toBeInTheDocument(); expect(container.querySelector('[data-testid="top-meetups-scene"]')).toBeInTheDocument(); expect(container.querySelector('[data-testid="activity-feed-scene"]')).toBeInTheDocument(); expect(container.querySelector('[data-testid="call-to-action-scene"]')).toBeInTheDocument();