Skip to content

Correct Sint Maarten / Saint Martin customer-facing labels (#124) - #125

Merged
spizeck merged 1 commit into
mainfrom
fix/sint-maarten-saint-martin-label
Sep 24, 2026
Merged

spizeck merged 1 commit into
mainfrom
fix/sint-maarten-saint-martin-label

Conversation

@spizeck

@spizeck spizeck commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

Summary

PR #120 grouped venues under the internal canonical sxm key but set the public label to Sint Maarten / Saint Martin / SXM — presenting SXM as a third equivalent name. Sint Maarten (Dutch side) and Saint Martin (French side) are the two jurisdictions on one island, so the customer-facing label is now exactly Sint Maarten / Saint Martin.

Closes #124

Changes

  • lib/venue-filters.ts: canonical ISLAND_DISPLAY_NAMES entry for sxm → Sint Maarten / Saint Martin (single mapping drives both the Island filter option and the group heading).
  • app/(pages)/where-to-buy/page.tsx: meta/OG/Twitter descriptions, FAQ JSON-LD question + answers, intro copy, and the Regional Availability label all use Sint Maarten / Saint Martin instead of SXM shorthand.
  • app/page.tsx + app/(pages)/contact/page.tsx + app/(pages)/trade/page.tsx: whole-island SXM shorthand in descriptions/copy replaced with Sint Maarten / Saint Martin.
  • docs/admin/managing-locations.md: heading description updated to match.
  • Tests: exact-label assertions updated; new guards prove SXM never appears in the filter options (toHaveCount(0) on options containing "SXM") or the display name.

Retained intentionally: internal sxm canonical key, ?island=sxm URLs, hasSxm, fixture locationName: "SXM" (deliberately exercises normalization), meta keywords (where to buy beer on SXM is a real search query), areaServed JSON-LD "SXM" alias (consistent with the Sint Eustatius/Statia dual listing), about page's Dutch-side Sint Maarten reference, and shipping coordination to SXM on /trade (ambiguous Dutch-side operational copy — flagged for owner review rather than guessed).

Verification

  • npx tsc --noEmit — clean
  • npm run lint — clean (one pre-existing jsx-ast-utils notice, also on main)
  • npm test — 350 pass
  • npm run test:rules — 29 pass
  • npm run build — pass
  • npm run test:smoke — 117 pass
  • npm run check:md-links — pass
  • npm run check:react-versions — pass
  • npm audit --omit=dev — 0 vulnerabilities
  • Visual review: /where-to-buy-fixture at 1280px and 375px — filter option and Sint Maarten / Saint Martin heading render correctly; venue cards keep raw locality text; /trade copy verified

Risk / deployment notes

Copy/terminology only — no schema, data, filtering, analytics, or distribution-claim changes. Note: PR #123 (open) rewrites the same /trade lines; whichever merges second will need a trivial rebase, and #123's copy contains the same SXM shorthand that should get this fix.

Generated with Devin

Summary by Sourcery

Use “Sint Maarten / Saint Martin” consistently as the public label while retaining sxm for internal grouping and URLs.

Bug Fixes:

  • Correct customer-facing Sint Maarten / Saint Martin labels by removing the internal “SXM” shorthand from public copy and headings.

Enhancements:

  • Standardize Sint Maarten / Saint Martin terminology across site metadata, availability content, FAQs, contact and trade pages, and location-management documentation.

Documentation:

  • Update location-management documentation to describe the corrected public island heading.

Tests:

  • Update label assertions and add coverage ensuring “SXM” does not appear in customer-facing island filter options or display names.

PR #120 grouped venues under the internal canonical `sxm` key but
displayed "Sint Maarten / Saint Martin / SXM" — SXM is not a third
jurisdiction on the island. The public label is now exactly
"Sint Maarten / Saint Martin" via the canonical ISLAND_DISPLAY_NAMES
mapping, which covers the filter option and group heading in one place.

Also replaces whole-island "SXM" shorthand in metadata, FAQ JSON-LD,
intro copy, and contact/homepage/trade descriptions. Internal keys,
fixture data, meta keywords, the areaServed alias, and the Dutch-side
"shipping coordination to SXM" wording are unchanged.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@sourcery-ai

sourcery-ai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

Corrects the customer-facing Sint Maarten / Saint Martin terminology while preserving the internal sxm canonical key, URLs, normalization behavior, and intentionally retained operational or SEO references; documentation and regression tests were updated accordingly.

File-Level Changes

Change Details Files
Centralized the corrected public label for the SXM canonical island key.
  • Changed the sxm display mapping to Sint Maarten / Saint Martin.
  • Preserved the internal sxm key and existing filtering/grouping behavior.
  • Updated admin documentation describing group-heading normalization.
lib/venue-filters.ts
docs/admin/managing-locations.md
Replaced customer-facing whole-island SXM shorthand across site metadata and copy.
  • Updated Where to Buy metadata, FAQ structured data, introductory text, and regional availability label.
  • Updated home, contact, and trade page descriptions and visible copy.
  • Intentionally retained operational, SEO-keyword, alias, fixture, and internal-key references where they have separate semantics.
app/(pages)/where-to-buy/page.tsx
app/page.tsx
app/(pages)/contact/page.tsx
app/(pages)/trade/page.tsx
Added regression coverage ensuring the corrected label is exposed without leaking the internal shorthand.
  • Updated exact display-name, filter-option, and group-heading expectations.
  • Added guards that reject SXM in the customer-facing island option and display name.
smoke-tests/where-to-buy-filters.spec.ts
tests/lib/venue-filters.test.ts

Assessment against linked issues

Issue Objective Addressed Explanation
#124 Change the canonical customer-facing display label for the internal sxm island key to exactly Sint Maarten / Saint Martin, including filter options, group headings, and other content derived from islandDisplayName. ✅
#124 Audit and replace whole-island customer-facing uses of SXM across the site and documentation, while retaining intentional Dutch-side references and internal identifiers such as the sxm key, fixture data, test IDs, and ?island=sxm URLs. ✅
#124 Preserve Firestore data, venue grouping and filtering behavior, and distribution claims. ✅

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@vercel

vercel Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
deepdivebrewing-web Ready Ready Preview Sep 24, 2026 12:34am UTC

Request Review

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've reviewed your changes and they look great!

Sourcery assessment

Approved.


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

@spizeck
spizeck merged commit 59365fd into main Sep 24, 2026
4 checks passed
@spizeck
spizeck deleted the fix/sint-maarten-saint-martin-label branch September 24, 2026 00:40

This branch was successfully deployed

1 active deployment
Preview — fd659f20 Deployed Sep 24, 2026 by vercel[bot]
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.

Correct Sint Maarten / Saint Martin customer-facing labels and audit SXM shorthand

1 participant