feat(web): align pricing cards with subscription page

Bring the public pricing cards in line with the in-app subscription page and
strengthen the CTA:
- Move the "Popüler" badge from 2 Marka to Full Paket (one consistent story
  across both surfaces).
- CTA "Başla" -> "Ücretsiz Başla" (leans on the free trial the flow grants).
- Yearly line now uses a consistent ₺ format ("veya ₺2.000,00/yıl") plus a
  "· 2 ay bedava" savings cue instead of the bare, differently-formatted
  "veya 2.000,00 TL/yıl".
- Plan-decision helper above the grid ("Hangi planı seçmeliyim? …").

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-25 16:10:43 +03:00
parent d49964aac1
commit 34bbb01fed
4 changed files with 38 additions and 11 deletions

View File

@@ -0,0 +1,21 @@
/**
* Guards that the public pricing page emphasises the same plan as the in-app
* subscription page. The "Popüler" badge was moved from 2 Marka to Full Paket
* so both surfaces tell one story.
*/
import { describe, expect, test } from "vitest";
import { plans } from "@/routes/pricing";
describe("pricing plans", () => {
test("Full Paket is the only popular plan (aligned with subscription)", () => {
expect(plans.find((p) => p.key === "full")?.popular).toBe(true);
expect(plans.find((p) => p.key === "brand2")?.popular).toBeFalsy();
expect(plans.filter((p) => p.popular).map((p) => p.key)).toEqual(["full"]);
});
test("still lists all four tiers in ascending brand order", () => {
expect(plans.map((p) => p.key)).toEqual(["brand1", "brand2", "brand3", "full"]);
});
});