Inhaltliche Korrektur (8 Credits) und Update/Ergänzung (4 Credits) existieren als buchbare Leistungen noch nicht — sie folgen erst mit dem Bookings-/Magic-Link-Rework und fliegen bis dahin von der Preisliste. Depublizieren wird als Direktkauf in Euro abgerechnet (Stripe-Checkout über billing.depublication_price_cents), nicht in Credits: Die Seite zeigt jetzt 35 € aus derselben Preisquelle wie der Kauf-Flow statt der falschen 35 Credits. Ohne konfigurierten Preis verschwindet der Block komplett (wie das Angebot auf der PM-Detailseite). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
70 lines
2.9 KiB
PHP
70 lines
2.9 KiB
PHP
<?php
|
|
|
|
use App\Models\Plan;
|
|
use Database\Seeders\PlanSeeder;
|
|
use Tests\TestCase;
|
|
|
|
test('the pricing page renders the editorial shell with real plans, single pm and add-ons', function () {
|
|
/** @var TestCase $this */
|
|
$this->seed(PlanSeeder::class);
|
|
|
|
$this->get('https://businessportal24.test/de/preise')
|
|
->assertSuccessful()
|
|
// Editorial-Masthead (Inhalte aus lang/de/pricing.php)
|
|
->assertSeeText('Transparente Preise für jede Reichweite')
|
|
// 1) Abo-Tarife (echte Pläne aus dem System)
|
|
->assertSeeText('Abo-Tarife mit Monatskontingent')
|
|
->assertSeeText('Starter')
|
|
->assertSeeText('Business')
|
|
->assertSeeText('Pro')
|
|
->assertSeeText('Agency')
|
|
// 2) Einzel-Pressemitteilung (config/billing)
|
|
->assertSeeText('Einzel-Pressemitteilung')
|
|
->assertSeeText('pro Veröffentlichung')
|
|
// 3) Add-ons (config/credits)
|
|
->assertSeeText('Add-ons & Einzelkosten')
|
|
->assertSeeText('Extra-Pressemitteilung')
|
|
->assertSeeText('Boost-Platzierung')
|
|
->assertSeeText('Veröffentlichungsnachweis (PDF)')
|
|
->assertSeeText('Credit-Pakete')
|
|
->assertSeeText('7 Tage') // boost 7d aus config
|
|
->assertSeeText('10 Credits') // Credit-Paket p10 aus config
|
|
->assertSeeText('Depublizieren')
|
|
->assertSee('35 €', false) // billing.depublication_price_cents (Direktkauf, keine Credits)
|
|
// Korrektur/Update gibt es noch nicht (folgen mit dem Magic-Link-Rework).
|
|
->assertDontSeeText('Inhaltliche Korrektur')
|
|
->assertDontSeeText('Update / Ergänzung');
|
|
});
|
|
|
|
test('the pricing page hides the depublication offer without a configured price', function () {
|
|
/** @var TestCase $this */
|
|
$this->seed(PlanSeeder::class);
|
|
config()->set('billing.depublication_price_cents', null);
|
|
|
|
$this->get('https://businessportal24.test/de/preise')
|
|
->assertSuccessful()
|
|
->assertDontSeeText('Depublizieren');
|
|
});
|
|
|
|
test('the pricing page serves english content on the english edition', function () {
|
|
/** @var TestCase $this */
|
|
$this->seed(PlanSeeder::class);
|
|
|
|
$this->get('https://businessportal24.test/en/preise')
|
|
->assertSuccessful()
|
|
->assertSeeText('Transparent pricing for every reach')
|
|
->assertSeeText('Subscriptions with a monthly quota')
|
|
->assertSeeText('Single press release')
|
|
->assertSeeText('Add-ons & individual costs');
|
|
});
|
|
|
|
test('the pricing page still works and shows an empty hint without plans', function () {
|
|
/** @var TestCase $this */
|
|
expect(Plan::query()->count())->toBe(0);
|
|
|
|
$this->get('https://businessportal24.test/de/preise')
|
|
->assertSuccessful()
|
|
->assertSeeText('Tarife werden in Kürze veröffentlicht.')
|
|
// Add-ons sind config-basiert und unabhängig von Tarifen sichtbar.
|
|
->assertSeeText('Add-ons & Einzelkosten');
|
|
});
|