Files
fotospiel-app/tests/Feature/Tenant/PackageCatalogAvailabilityTest.php
Codex Agent d2808ffa4f
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled
feat(addons): finalize event addon catalog and ai styling upgrade flow
2026-02-07 12:35:07 +01:00

51 lines
1.6 KiB
PHP

<?php
namespace Tests\Feature\Tenant;
use App\Models\Package;
use Illuminate\Support\Facades\Config;
class PackageCatalogAvailabilityTest extends TenantTestCase
{
public function test_paypal_catalog_marks_paid_reseller_packages_as_checkout_ready(): void
{
Config::set('checkout.default_provider', 'paypal');
Package::factory()->create([
'type' => 'reseller',
'price' => 99,
'lemonsqueezy_variant_id' => null,
]);
$response = $this->authenticatedRequest('GET', '/api/v1/tenant/packages?type=reseller');
$response->assertOk();
$response->assertJsonPath('data.0.checkout_provider', 'paypal');
$response->assertJsonPath('data.0.can_checkout', true);
}
public function test_lemonsqueezy_catalog_requires_variant_for_checkout(): void
{
Config::set('checkout.default_provider', 'lemonsqueezy');
Package::factory()->create([
'type' => 'reseller',
'price' => 99,
'lemonsqueezy_variant_id' => null,
]);
Package::factory()->create([
'type' => 'reseller',
'price' => 199,
'lemonsqueezy_variant_id' => 'pri_reseller_2',
]);
$response = $this->authenticatedRequest('GET', '/api/v1/tenant/packages?type=reseller');
$response->assertOk();
$response->assertJsonPath('data.0.checkout_provider', 'lemonsqueezy');
$response->assertJsonPath('data.0.can_checkout', false);
$response->assertJsonPath('data.1.can_checkout', true);
}
}