feat(addons): finalize event addon catalog and ai styling upgrade flow
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled

This commit is contained in:
Codex Agent
2026-02-07 12:35:07 +01:00
parent 8cc0918881
commit d2808ffa4f
36 changed files with 1372 additions and 457 deletions

View File

@@ -0,0 +1,50 @@
<?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);
}
}