feat(purchase): centralize admin sale statuses
This commit is contained in:
69
tests/Unit/Purchase/PurchaseAdminStatusTest.php
Normal file
69
tests/Unit/Purchase/PurchaseAdminStatusTest.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit\Purchase;
|
||||
|
||||
use App\Domains\Purchase\Models\Purchase;
|
||||
use PHPUnit\Framework\Attributes\DataProvider;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class PurchaseAdminStatusTest extends TestCase
|
||||
{
|
||||
#[DataProvider('statusMappings')]
|
||||
public function test_it_maps_real_statuses_to_admin_statuses(
|
||||
string $realStatus,
|
||||
string $adminStatus,
|
||||
string $adminStatusName,
|
||||
): void {
|
||||
$this->assertSame($adminStatus, Purchase::adminStatusFor($realStatus));
|
||||
$this->assertSame($adminStatusName, Purchase::adminStatusNameFor($realStatus));
|
||||
$this->assertContains(
|
||||
$realStatus,
|
||||
Purchase::realStatusesForAdminStatus($adminStatus),
|
||||
);
|
||||
}
|
||||
|
||||
/** @return iterable<string, array{string, string, string}> */
|
||||
public static function statusMappings(): iterable
|
||||
{
|
||||
yield 'created' => [
|
||||
Purchase::STATUS_CREATED,
|
||||
Purchase::ADMIN_STATUS_INCOMPLETE,
|
||||
'Por completar datos',
|
||||
];
|
||||
yield 'pending payment' => [
|
||||
Purchase::STATUS_PENDING_PAYMENT,
|
||||
Purchase::ADMIN_STATUS_AWAITING_PAYMENT,
|
||||
'Esperando pago',
|
||||
];
|
||||
yield 'in review' => [
|
||||
Purchase::STATUS_IN_REVIEW,
|
||||
Purchase::ADMIN_STATUS_AWAITING_PAYMENT,
|
||||
'Esperando pago',
|
||||
];
|
||||
yield 'paid' => [
|
||||
Purchase::STATUS_PAID,
|
||||
Purchase::ADMIN_STATUS_CONFIRMED,
|
||||
'Confirmado',
|
||||
];
|
||||
yield 'cancelled' => [
|
||||
Purchase::STATUS_CANCELLED,
|
||||
Purchase::ADMIN_STATUS_CANCELLED,
|
||||
'Anulado',
|
||||
];
|
||||
yield 'rejected' => [
|
||||
Purchase::STATUS_REJECTED,
|
||||
Purchase::ADMIN_STATUS_CANCELLED,
|
||||
'Anulado',
|
||||
];
|
||||
yield 'expired' => [
|
||||
Purchase::STATUS_EXPIRED,
|
||||
Purchase::ADMIN_STATUS_CANCELLED,
|
||||
'Anulado',
|
||||
];
|
||||
yield 'superseded' => [
|
||||
Purchase::STATUS_SUPERSEDED,
|
||||
Purchase::ADMIN_STATUS_CANCELLED,
|
||||
'Anulado',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user