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() {
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.