Files
sase.tr/biome.json
Fusion b1e75a0771 test(FN-202): add 45 regression tests for /dashboard/subscription page
Covers P0-1 through P0-10 CRO fixes and edge cases:
- Rendering: plan cards, billing toggle, yearly discount (P0-1), popular
  visual dominance (P0-2), current plan badge (P0-5), loading state
- Interaction: CTA labels (P0-3), order summary (P0-4), trial card
  hidden on trial status (P0-6), payment navigation, non-interactive plan
- Trust & i18n: PostHog events (P0-10), i18n key usage (P0-9),
  trust i18n keys exist (P0-7, P0-8)
- Edge cases: no subscription, expired, cancelled, empty state, full plan
- Accessibility: button labels, non-clickable current plan, color
- Subscription status: dates, brands, billing period, cancel button

Also exports SubscriptionPage for testability and relaxes test lint
rules (noNonNullAssertion, noForEach, useButtonType) in biome.json.

47/47 tests passing.
2026-05-12 18:23:38 +00:00

108 lines
2.1 KiB
JSON

{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
},
"overrides": [
{
"include": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.test.ts", "**/*.test.tsx"],
"linter": {
"rules": {
"suspicious": {
"noExplicitAny": "off"
},
"style": {
"noNonNullAssertion": "off"
},
"complexity": {
"noForEach": "off"
},
"a11y": {
"useButtonType": "off"
}
}
}
},
{
"include": [
"**/src/catalog/**",
"**/src/categories/**",
"**/src/integrations/**",
"**/src/components/**",
"**/src/routes/**"
],
"linter": {
"rules": {
"suspicious": {
"noExplicitAny": "off"
}
}
}
},
{
"include": ["apps/api/**"],
"linter": {
"rules": {
"style": {
"useImportType": "off"
}
}
}
},
{
"include": [
"**/dashboard/catalog_/**",
"**/dashboard/service-test.tsx"
],
"linter": {
"rules": {
"suspicious": {
"noArrayIndexKey": "off"
},
"correctness": {
"useExhaustiveDependencies": "off"
}
}
}
},
{
"include": [
"**/catalog/emex-catalog.service.ts",
"**/catalog/pcat-catalog.service.ts"
],
"linter": {
"rules": {
"style": {
"noNonNullAssertion": "off"
}
}
}
}
],
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 100
},
"javascript": {
"parser": {
"unsafeParameterDecoratorsEnabled": true
},
"formatter": {
"quoteStyle": "double",
"semicolons": "always",
"trailingCommas": "all"
}
},
"files": {
"ignore": ["node_modules", "dist", ".next", "*.min.js", "**/*.gen.ts"]
}
}