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();