Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion app/(pages)/contact/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,8 @@ export default function ContactPage() {
<div>
<h3 className="font-medium text-ink">Where are you distributing?</h3>
<p className="mt-1">
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.
</p>
</div>
Expand Down
6 changes: 3 additions & 3 deletions app/(pages)/trade/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -59,8 +59,8 @@ export default function TradePage() {
</h1>
<p className="mt-3 max-w-180 text-muted-foreground">
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.
</p>
</div>

Expand Down
22 changes: 11 additions & 11 deletions app/(pages)/where-to-buy/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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: [
{
Expand All @@ -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"],
},
};
Expand All @@ -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.",
},
},
{
Expand Down Expand Up @@ -107,7 +107,7 @@ export default async function WhereToBuyPage() {
</h1>
<p className="mt-3 max-w-180 text-muted-foreground">
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.
</p>
</div>
Expand All @@ -120,7 +120,7 @@ export default async function WhereToBuyPage() {
locations listed below.
</li>
<li>
<span className="font-medium text-ink">Sint Maarten / Saint Martin / SXM:</span>{" "}
<span className="font-medium text-ink">Sint Maarten / Saint Martin:</span>{" "}
{hasSxm
? "partner locations listed below; more coming soon."
: "not currently listed; expansion in progress."}
Expand Down Expand Up @@ -158,11 +158,11 @@ export default async function WhereToBuyPage() {
</p>
</div>
<div>
<h3 className="font-semibold text-ink">Where can I buy Deep Dive beer on Sint Maarten, Saint Martin, or SXM?</h3>
<h3 className="font-semibold text-ink">Where can I buy Deep Dive beer on Sint Maarten or Saint Martin?</h3>
<p className="mt-1">
{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."}
</p>
</div>
<div>
Expand Down
2 changes: 1 addition & 1 deletion app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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: "/",
},
Expand Down
2 changes: 1 addition & 1 deletion docs/admin/managing-locations.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion lib/venue-filters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<string, string> = new Map([
["saba", "Saba"],
["sxm", "Sint Maarten / Saint Martin / SXM"],
["sxm", "Sint Maarten / Saint Martin"],
["statia", "Sint Eustatius / Statia"],
]);

Expand Down
8 changes: 6 additions & 2 deletions smoke-tests/where-to-buy-filters.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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" })
Expand Down
9 changes: 5 additions & 4 deletions tests/lib/venue-filters.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Loading