diff --git a/app/(pages)/contact/page.tsx b/app/(pages)/contact/page.tsx index fcb2b13..f832a90 100644 --- a/app/(pages)/contact/page.tsx +++ b/app/(pages)/contact/page.tsx @@ -268,7 +268,8 @@ export default function ContactPage() {

Where are you distributing?

- We currently focus on Saba and select partner accounts in SXM, + We currently focus on Saba and select partner accounts in + Sint Maarten / Saint Martin, with expansion in progress.

diff --git a/app/(pages)/trade/page.tsx b/app/(pages)/trade/page.tsx index 2fbe835..82c080a 100644 --- a/app/(pages)/trade/page.tsx +++ b/app/(pages)/trade/page.tsx @@ -8,7 +8,7 @@ import { BUSINESS_EMAIL } from "@/lib/site"; export const metadata: Metadata = { title: "Trade & Wholesale", description: - "Stock Deep Dive Brewing Co beer at your bar, restaurant, hotel, or retail location. Submit a trade inquiry for Saba, SXM, and nearby islands.", + "Stock Deep Dive Brewing Co beer at your bar, restaurant, hotel, or retail location. Submit a trade inquiry for Saba, Sint Maarten / Saint Martin, and nearby islands.", keywords: [ "Deep Dive Brewing wholesale", "trade inquiry Saba", @@ -59,8 +59,8 @@ export default function TradePage() {

Interested in carrying Deep Dive Brewing Co at your bar, restaurant, - hotel, or retail location? We partner with accounts across Saba, SXM, - and the surrounding islands. + hotel, or retail location? We partner with accounts across Saba, + Sint Maarten / Saint Martin, and the surrounding islands.

diff --git a/app/(pages)/where-to-buy/page.tsx b/app/(pages)/where-to-buy/page.tsx index b2d22de..100103b 100644 --- a/app/(pages)/where-to-buy/page.tsx +++ b/app/(pages)/where-to-buy/page.tsx @@ -9,7 +9,7 @@ import { carriedBeerOptions, distinctIslands } from "@/lib/venue-filters"; export const metadata: Metadata = { title: "Where to Buy", description: - "Find Deep Dive beer on Saba. Bars, restaurants, and retailers carrying our island-brewed beers, plus SXM availability updates.", + "Find Deep Dive beer on Saba. Bars, restaurants, and retailers carrying our island-brewed beers, plus Sint Maarten / Saint Martin availability updates.", keywords: [ "where to buy beer on Saba", "where to buy beer on Sint Maarten", @@ -25,7 +25,7 @@ export const metadata: Metadata = { openGraph: { title: "Where to Buy | Deep Dive Brewing Co", description: - "Find Deep Dive beer on Saba. Bars, restaurants, and retailers carrying our island-brewed beers, plus SXM availability updates.", + "Find Deep Dive beer on Saba. Bars, restaurants, and retailers carrying our island-brewed beers, plus Sint Maarten / Saint Martin availability updates.", url: "/where-to-buy", images: [ { @@ -40,7 +40,7 @@ export const metadata: Metadata = { card: "summary_large_image", title: "Where to Buy | Deep Dive Brewing Co", description: - "Find Deep Dive beer on Saba. Bars, restaurants, and retailers carrying our island-brewed beers, plus SXM availability updates.", + "Find Deep Dive beer on Saba. Bars, restaurants, and retailers carrying our island-brewed beers, plus Sint Maarten / Saint Martin availability updates.", images: ["/photos/og-default.jpg"], }, }; @@ -66,12 +66,12 @@ export default async function WhereToBuyPage() { }, { "@type": "Question", - name: "Where can I buy Deep Dive beer on Sint Maarten, Saint Martin, or SXM?", + name: "Where can I buy Deep Dive beer on Sint Maarten or Saint Martin?", acceptedAnswer: { "@type": "Answer", text: hasSxm - ? "Partner locations in SXM are listed below. We are actively adding additional accounts across the island." - : "We are working to add partner locations in SXM. Contact us or check back for updates.", + ? "Partner locations in Sint Maarten / Saint Martin are listed below. We are actively adding additional accounts across the island." + : "We are working to add partner locations in Sint Maarten / Saint Martin. Contact us or check back for updates.", }, }, { @@ -107,7 +107,7 @@ export default async function WhereToBuyPage() {

Find Deep Dive beers through our partner locations on Saba. We are - expanding into Sint Maarten / SXM and nearby islands; those locations + expanding into Sint Maarten / Saint Martin and nearby islands; those locations will be added here as they come online.

@@ -120,7 +120,7 @@ export default async function WhereToBuyPage() { locations listed below.
  • - Sint Maarten / Saint Martin / SXM:{" "} + Sint Maarten / Saint Martin:{" "} {hasSxm ? "partner locations listed below; more coming soon." : "not currently listed; expansion in progress."} @@ -158,11 +158,11 @@ export default async function WhereToBuyPage() {

    -

    Where can I buy Deep Dive beer on Sint Maarten, Saint Martin, or SXM?

    +

    Where can I buy Deep Dive beer on Sint Maarten or Saint Martin?

    {hasSxm - ? "Partner locations in SXM are listed above. We are actively adding more partner accounts across the island." - : "We are working to add partner locations in SXM. Contact us or check back for updates."} + ? "Partner locations in Sint Maarten / Saint Martin are listed above. We are actively adding more partner accounts across the island." + : "We are working to add partner locations in Sint Maarten / Saint Martin. Contact us or check back for updates."}

    diff --git a/app/page.tsx b/app/page.tsx index 24b425f..09fc535 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -16,7 +16,7 @@ import type { CSSProperties } from "react"; export const metadata: Metadata = { title: "Craft Beer on Saba", description: - "Deep Dive Brewing Co is Saba's craft brewery. Find where to buy our beer across Saba and SXM, and contact us for wholesale partnerships.", + "Deep Dive Brewing Co is Saba's craft brewery. Find where to buy our beer across Saba and Sint Maarten / Saint Martin, and contact us for wholesale partnerships.", alternates: { canonical: "/", }, diff --git a/docs/admin/managing-locations.md b/docs/admin/managing-locations.md index 0f1975e..19d31a9 100644 --- a/docs/admin/managing-locations.md +++ b/docs/admin/managing-locations.md @@ -48,7 +48,7 @@ This guide explains how to add, edit, and remove partner venues from the Deep Di The `/where-to-buy` page groups venues by the **Location Name** field. The public page uses these rules to decide the heading for each group: -- If the location name contains `sxm`, `maarten`, or `martin`, the heading displays as **Sint Maarten / Saint Martin / SXM**. +- If the location name contains `sxm`, `maarten`, or `martin`, the heading displays as **Sint Maarten / Saint Martin**. - If the location name contains `statia` or `eustatius`, the heading displays as **Sint Eustatius / Statia**. - `Saba` — or any value whose last comma-separated part is `Saba`, such as `Windwardside, Saba` or `Fort Bay, Saba` — groups under **Saba**. The locality prefix still appears on the venue card but does not create its own group. - Any other value becomes its own group heading, capitalized word by word. diff --git a/lib/venue-filters.ts b/lib/venue-filters.ts index c32a1fa..16cafcb 100644 --- a/lib/venue-filters.ts +++ b/lib/venue-filters.ts @@ -99,7 +99,7 @@ export function islandKey(locationName: string | undefined): string { // Object.prototype members still take the unknown-island path. const ISLAND_DISPLAY_NAMES: ReadonlyMap = new Map([ ["saba", "Saba"], - ["sxm", "Sint Maarten / Saint Martin / SXM"], + ["sxm", "Sint Maarten / Saint Martin"], ["statia", "Sint Eustatius / Statia"], ]); diff --git a/smoke-tests/where-to-buy-filters.spec.ts b/smoke-tests/where-to-buy-filters.spec.ts index a241799..573ab3c 100644 --- a/smoke-tests/where-to-buy-filters.spec.ts +++ b/smoke-tests/where-to-buy-filters.spec.ts @@ -57,8 +57,12 @@ test("renders filters and all venues unfiltered", async ({ page }) => { await expect(islandSelect(page).locator("option")).toHaveText([ "All islands", "Saba", - "Sint Maarten / Saint Martin / SXM", + "Sint Maarten / Saint Martin", ]); + // "SXM" is the internal key only — never a customer-facing option (#124). + await expect( + islandSelect(page).locator("option", { hasText: "SXM" }) + ).toHaveCount(0); await expect(statusText(page)).toHaveText("4 venues shown"); expect(await venueNames(page)).toEqual([ "Fixture Tavern", @@ -128,7 +132,7 @@ test("Saba localities render under one Saba group and one filter option", async // "Fort bay, saba". await expect(page.locator("main h2")).toHaveText([ "Saba", - "Sint Maarten / Saint Martin / SXM", + "Sint Maarten / Saint Martin", ]); await expect( page.getByRole("heading", { name: "Fort bay, saba" }) diff --git a/tests/lib/venue-filters.test.ts b/tests/lib/venue-filters.test.ts index 98457b3..753a3be 100644 --- a/tests/lib/venue-filters.test.ts +++ b/tests/lib/venue-filters.test.ts @@ -97,10 +97,11 @@ describe("islandKey / islandDisplayName", () => { }); it("renders intentional display names for known islands", () => { - assert.equal( - islandDisplayName("sxm"), - "Sint Maarten / Saint Martin / SXM" - ); + const sxmLabel = islandDisplayName("sxm"); + assert.equal(sxmLabel, "Sint Maarten / Saint Martin"); + // The two jurisdictions are the whole label — "SXM" is the internal + // canonical key and must not be appended as a third island name. + assert.equal(sxmLabel.includes("SXM"), false); assert.equal(islandDisplayName("statia"), "Sint Eustatius / Statia"); assert.equal(islandDisplayName("saba"), "Saba"); // A Saba locality can never surface as a heading again.