51 lines
1.6 KiB
PHP
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);
|
|
}
|
|
}
|