mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 14:00:29 +00:00
Remove pricing counted-unit note
This commit is contained in:
@@ -316,6 +316,9 @@ That same counted-unit boundary also owns the disclosure rule for retail copy:
|
||||
default billing and pricing surfaces should use concise monitored-system copy,
|
||||
while the full counted-unit definition appears only behind explicit disclosure
|
||||
such as `What counts?` instead of sitting as always-visible explanatory chrome.
|
||||
The self-hosted pricing page should therefore stay focused on plan cards,
|
||||
upgrade paths, and the comparison table rather than rendering a separate
|
||||
counted-unit explainer card beneath the tier grid.
|
||||
That contract applies to both plan summary labels and upgrade/paywall copy:
|
||||
current v6 self-hosted pricing may not drift back to the older `$49/yr Relay`,
|
||||
`$99/yr Pro`, or monitored-system-count marketing drift that contradicts the
|
||||
|
||||
@@ -21,12 +21,10 @@ import { logger } from '@/utils/logger';
|
||||
import {
|
||||
SELF_HOSTED_FEATURE_ROWS,
|
||||
SELF_HOSTED_PLAN_BY_TIER,
|
||||
SELF_HOSTED_MONITORED_SYSTEMS_BRIEF,
|
||||
type SelfHostedFeatureRow,
|
||||
type SelfHostedPlanDefinition,
|
||||
type SelfHostedTierKey,
|
||||
} from '@/utils/selfHostedPlans';
|
||||
import { MonitoredSystemDefinitionDisclosure } from '@/components/Commercial/MonitoredSystemDefinitionDisclosure';
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Shared sub-components
|
||||
@@ -341,14 +339,6 @@ export default function PricingV6() {
|
||||
<TierCard tier={SELF_HOSTED_PLAN_BY_TIER.proPlus} cta={proPlusCta} />
|
||||
</div>
|
||||
|
||||
<Card padding="lg" class="space-y-2">
|
||||
<MonitoredSystemDefinitionDisclosure
|
||||
summary={SELF_HOSTED_MONITORED_SYSTEMS_BRIEF}
|
||||
summaryClass="text-sm text-base-content"
|
||||
detailClass="max-w-3xl text-xs text-muted"
|
||||
/>
|
||||
</Card>
|
||||
|
||||
{/* Upsell links */}
|
||||
<div class="flex flex-wrap items-center justify-center gap-x-6 gap-y-2 text-sm text-muted">
|
||||
<span>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import { fireEvent, render, screen } from '@solidjs/testing-library';
|
||||
import { render, screen } from '@solidjs/testing-library';
|
||||
import type { JSX } from 'solid-js';
|
||||
|
||||
import PricingV6 from '../PricingV6';
|
||||
@@ -66,17 +66,9 @@ describe('PricingV6', () => {
|
||||
expect(screen.getByText('50 monitored systems')).toBeInTheDocument();
|
||||
expect(screen.getByText('Feature Comparison')).toBeInTheDocument();
|
||||
expect(
|
||||
screen.getByText('Billing is based on monitored systems. Child resources are included.'),
|
||||
).toBeInTheDocument();
|
||||
expect(
|
||||
screen.queryByText(/a monitored system is a top-level machine or cluster/i),
|
||||
screen.queryByText('Billing is based on monitored systems. Child resources are included.'),
|
||||
).not.toBeInTheDocument();
|
||||
|
||||
fireEvent.click(screen.getByRole('button', { name: 'What counts?' }));
|
||||
|
||||
expect(
|
||||
screen.getByText(/a monitored system is a top-level machine or cluster/i),
|
||||
).toBeInTheDocument();
|
||||
expect(screen.queryByRole('button', { name: 'What counts?' })).not.toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('imports the shared self-hosted pricing model instead of redefining it locally', () => {
|
||||
|
||||
Reference in New Issue
Block a user