Guard Paddle sync mapping
This commit is contained in:
@@ -4,6 +4,7 @@ namespace Tests\Feature;
|
||||
|
||||
use App\Jobs\SyncPackageToPaddle;
|
||||
use App\Models\Package;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\Bus as BusFacade;
|
||||
use Tests\TestCase;
|
||||
@@ -14,7 +15,10 @@ class PaddleSyncPackagesCommandTest extends TestCase
|
||||
|
||||
public function test_command_dispatches_jobs_for_packages(): void
|
||||
{
|
||||
Package::factory()->count(2)->create();
|
||||
Package::factory()->count(2)->create([
|
||||
'paddle_product_id' => 'pro_test',
|
||||
'paddle_price_id' => 'pri_test',
|
||||
]);
|
||||
|
||||
BusFacade::fake();
|
||||
|
||||
@@ -44,6 +48,41 @@ class PaddleSyncPackagesCommandTest extends TestCase
|
||||
});
|
||||
}
|
||||
|
||||
public function test_command_blocks_bulk_sync_with_unmapped_packages(): void
|
||||
{
|
||||
Package::factory()->create([
|
||||
'paddle_product_id' => null,
|
||||
'paddle_price_id' => null,
|
||||
]);
|
||||
|
||||
BusFacade::fake();
|
||||
|
||||
$this->artisan('paddle:sync-packages', [
|
||||
'--dry-run' => true,
|
||||
'--queue' => true,
|
||||
])->assertExitCode(Command::FAILURE);
|
||||
|
||||
BusFacade::assertNotDispatched(SyncPackageToPaddle::class);
|
||||
}
|
||||
|
||||
public function test_command_allows_unmapped_packages_when_overridden(): void
|
||||
{
|
||||
Package::factory()->create([
|
||||
'paddle_product_id' => null,
|
||||
'paddle_price_id' => null,
|
||||
]);
|
||||
|
||||
BusFacade::fake();
|
||||
|
||||
$this->artisan('paddle:sync-packages', [
|
||||
'--dry-run' => true,
|
||||
'--queue' => true,
|
||||
'--allow-unmapped' => true,
|
||||
])->assertExitCode(Command::SUCCESS);
|
||||
|
||||
BusFacade::assertDispatched(SyncPackageToPaddle::class, 1);
|
||||
}
|
||||
|
||||
protected function getJobPackageId(SyncPackageToPaddle $job): int
|
||||
{
|
||||
$reflection = new \ReflectionClass($job);
|
||||
|
||||
Reference in New Issue
Block a user