Skip to content

Review festival linking progress and plan next steps - #194

Merged
richardthe3rd merged 5 commits into
mainfrom
claude/review-festival-progress-D9uIv
Dec 27, 2025
Merged

Review festival linking progress and plan next steps#194
richardthe3rd merged 5 commits into
mainfrom
claude/review-festival-progress-D9uIv

Conversation

@richardthe3rd

Copy link
Copy Markdown
Owner

This pull request implements canonical lowercase URLs for style detail pages and updates navigation and UI patterns to support festival-scoped routing. The changes ensure consistent, SEO-friendly, and shareable URLs, update documentation and tests accordingly, and improve the user interface to reflect the current festival context on detail screens.

URL Canonicalization and Routing:

  • All style detail URLs are now generated and matched in lowercase canonical format (e.g., /cbf2025/style/ipa instead of /cbf2025/style/IPA), ensuring consistency and SEO benefits across the app. All navigation helpers, documentation, and tests have been updated to reflect this change. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]

UI/UX Improvements for Festival Context:

  • Detail screens (drink, brewery, style) now display the current festival name in their headers and use a breadcrumb navigation pattern, improving clarity and navigation for users. [1] [2] [3] [4] [5] [6] [7]

Case-Insensitive Style Matching:

  • The style screen now matches drinks by style in a case-insensitive manner, ensuring that all drinks of a given style are shown regardless of the case used in the data or URL.

Documentation and Testing Updates:

Test and Config File Updates:

  • Test configuration files (screenshots.config.json) and Playwright/E2E test scripts have been updated to use lowercase style URLs, ensuring alignment with the new routing scheme. [1] [2] [3]

These changes together provide a more robust, user-friendly, and future-proof routing and navigation experience for festival detail pages.

Implement Option A: Festival context displayed in breadcrumbs and screen headers

Changes:
- Breadcrumbs now show festival ID (e.g., "cbf2025") instead of "Drinks"
- BreweryScreen: Added "at [Festival Name]" subtitle under brewery name
- StyleScreen: Added "[Style] at [Festival Name]" heading in header
- DrinkDetailScreen: Updated breadcrumb to show festival ID
- Updated golden images for screenshot tests
- Fixed style_screen_test.dart assertions for new breadcrumb format

All 459 tests passing.
Complete consistency across all detail screens by adding "at [Festival Name]"
to the drink detail header.

Changes:
- DrinkDetailScreen: Added "at Cambridge Beer Festival 2025" subtitle
  below drink name in header (matches BreweryScreen pattern)
- Updated golden images for screenshot tests
- All 476 tests passing

Now all three detail screens show festival context consistently:
- DrinkDetailScreen: "Drink Name" → "at Festival" → Brewery
- BreweryScreen: "Brewery Name" → "at Festival"
- StyleScreen: "Style at Festival" heading
- Convert style names to lowercase in buildStylePath() for SEO optimization
- Update StyleScreen to use case-insensitive filtering for style matching
- Update navigation_helpers tests to expect lowercase URLs
- Accept any case for navigation but lowercase is canonical format

All 477 tests passing.
- Updated docs/code/routing.md:
  - Listed all routes with festival scoping
  - Added Style URL Canonicalization section explaining lowercase format
  - Updated Deep Link Navigation to explain breadcrumb pattern

- Updated docs/ui-components.md:
  - Updated BreadcrumbBar usage examples to show festival ID pattern
  - Added current pattern explanation for festival-scoped routing

- Updated docs/planning/deep-linking/phase-0-guide.md:
  - Updated buildStylePath() function docs with lowercase logic
  - Updated all test examples to expect lowercase URLs
  - Updated example URL paths to show lowercase style URLs

- Updated docs/navigation.md:
  - Added comment showing buildStylePath() returns lowercase URLs

All examples now reflect current implementation with:
- Festival-scoped routing (/:festivalId/...)
- Breadcrumbs showing festival ID
- Headers showing "at Festival Name"
- Lowercase canonical style URLs
Updated tests to expect lowercase style URLs matching the canonical format:

- test/router_test.dart: Updated style path test to expect lowercase 'ipa'
- test-e2e/routing.spec.ts: Updated E2E test to use lowercase 'american ipa'

Documentation fixes for consistency:
- docs/navigation.md: Updated style URL example to lowercase
- CLAUDE.md: Updated screenshots config example to lowercase
- docs/planning/deep-linking/PHASE-1-COMPLETE.md: Updated manual testing checklist
- docs/planning/deep-linking/design.md: Updated example URLs and design decisions
- docs/planning/deep-linking/implementation-plan.md: Updated JSON config example
- docs/planning/deep-linking/testing-strategy.md: Updated test examples
- docs/planning/deep-linking/design-review.md: Updated edge case examples

All 477 tests passing. Ready for CI.
@github-actions

Copy link
Copy Markdown
Contributor

LCOV of commit 59dbaef during Flutter App CI/CD #968

Summary coverage rate:
  lines......: 76.7% (2137 of 2787 lines)
  functions..: no data found
  branches...: no data found

Files changed coverage rate:
                                         |Lines       |Functions  |Branches    
  Filename                               |Rate     Num|Rate    Num|Rate     Num
  =============================================================================
  lib/screens/brewery_screen.dart        | 0.0%    117|    -     0|    -      0
  lib/screens/drink_detail_screen.dart   | 0.0%    209|    -     0|    -      0
  lib/screens/style_screen.dart          | 0.0%     90|    -     0|    -      0
  lib/utils/navigation_helpers.dart      | 0.0%     41|    -     0|    -      0
  lib/widgets/entity_detail_screen.dart  | 0.0%     44|    -     0|    -      0

@codecov

codecov Bot commented Dec 27, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

Copy link
Copy Markdown
Contributor

🚀 Cloudflare Pages Preview

Your preview deployment is ready!

Preview URL: https://claude-review-festival-progr.staging-cambeerfestival.pages.dev

This preview will be automatically updated when you push new commits to this PR.

@richardthe3rd
richardthe3rd merged commit 6af47b6 into main Dec 27, 2025
10 checks passed
@richardthe3rd
richardthe3rd deleted the claude/review-festival-progress-D9uIv branch December 27, 2025 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants