diff --git a/client/src/pages/JourneyDetailPage.test.tsx b/client/src/pages/JourneyDetailPage.test.tsx index 390f1cfc..3abdc2e3 100644 --- a/client/src/pages/JourneyDetailPage.test.tsx +++ b/client/src/pages/JourneyDetailPage.test.tsx @@ -1468,7 +1468,7 @@ describe('JourneyDetailPage', () => { // ── FE-PAGE-JOURNEYDETAIL-074 ────────────────────────────────────────── describe('FE-PAGE-JOURNEYDETAIL-074: Delete share link removes it', () => { - it('clicking "Remove share link" calls DELETE and returns to create state', async () => { + it('clicking "Delete link" calls DELETE and returns to create state', async () => { const user = userEvent.setup({ advanceTimers: vi.advanceTimersByTime }); let deleteCalled = false; @@ -1493,10 +1493,10 @@ describe('JourneyDetailPage', () => { await openSettingsDialog(user); await waitFor(() => { - expect(screen.getByText('Remove share link')).toBeInTheDocument(); + expect(screen.getByText('Delete link')).toBeInTheDocument(); }); - await user.click(screen.getByText('Remove share link')); + await user.click(screen.getByText('Delete link')); await waitFor(() => { expect(deleteCalled).toBe(true); @@ -2905,7 +2905,7 @@ describe('JourneyDetailPage', () => { // The permission toggles show Timeline, Gallery, Map labels within the share section // These reuse the same i18n keys as the main tab bar - expect(screen.getByText('Remove share link')).toBeInTheDocument(); + expect(screen.getByText('Delete link')).toBeInTheDocument(); expect(screen.getByText('Copy')).toBeInTheDocument(); }); }); diff --git a/client/src/pages/JourneyPublicPage.test.tsx b/client/src/pages/JourneyPublicPage.test.tsx index d831a485..1702a7d0 100644 --- a/client/src/pages/JourneyPublicPage.test.tsx +++ b/client/src/pages/JourneyPublicPage.test.tsx @@ -234,28 +234,20 @@ describe('JourneyPublicPage', () => { } }); - it('FE-PAGE-PUBLICJOURNEY-009: map tab switches view', async () => { + it('FE-PAGE-PUBLICJOURNEY-009: map is always visible in desktop two-column layout', async () => { setupSuccess(); render(); await waitFor(() => { expect(screen.getByText('Tokyo 2026')).toBeInTheDocument(); }); - const buttons = screen.getAllByRole('button'); - const mapBtn = buttons.find( - btn => btn.textContent && /map/i.test(btn.textContent), - ); - expect(mapBtn).toBeDefined(); - if (mapBtn) { - fireEvent.click(mapBtn); - // After clicking map tab, the timeline entries should no longer be visible - // and the map view content should be rendered (even if JourneyMap errors internally - // due to jsdom limitations, the tab state switches) - await waitFor(() => { - // Shibuya Crossing (timeline-only) should not appear once map is active - expect(screen.queryByText('Shibuya Crossing')).not.toBeInTheDocument(); - }); - } + // Desktop two-column: map sidebar is always rendered alongside the timeline; + // there is no standalone "Map" tab button on desktop. + await waitFor(() => { + expect(screen.getByTestId('journey-map')).toBeInTheDocument(); + }); + // Timeline entries remain visible (two-column shows both simultaneously) + expect(screen.getByText('Shibuya Crossing')).toBeInTheDocument(); }); it('FE-PAGE-PUBLICJOURNEY-010: shows journey stats', async () => { @@ -303,24 +295,18 @@ describe('JourneyPublicPage', () => { }); // FE-PAGE-PUBLICJOURNEY-012 - it('FE-PAGE-PUBLICJOURNEY-012: tab switching from timeline to map shows map component', async () => { - const user = userEvent.setup(); + it('FE-PAGE-PUBLICJOURNEY-012: map component renders with located entries in desktop two-column layout', async () => { setupSuccess(); render(); await waitFor(() => { expect(screen.getByText('Tokyo 2026')).toBeInTheDocument(); }); - const mapBtn = screen.getAllByRole('button').find( - btn => btn.textContent && /map/i.test(btn.textContent), - ); - expect(mapBtn).toBeDefined(); - await user.click(mapBtn!); - + // Desktop two-column: map sidebar is always rendered; no tab click required. await waitFor(() => { expect(screen.getByTestId('journey-map')).toBeInTheDocument(); }); - // Map receives entries with lat/lng + // Both fixture entries have coordinates → map receives 2 located entries expect(screen.getByTestId('journey-map').textContent).toContain('2'); });