| 123456789101112131415161718192021222324252627282930313233343536373839 |
- <?php
- declare(strict_types=1);
- namespace Tests\Unit\Models;
- use App\Enums\ProductionOrderExecutionType;
- use App\Enums\ProductionOrderStatus;
- use App\Models\ProductionOrder;
- use App\Models\ProductionOrderDelivery;
- use App\Models\ProductionOrderInstallation;
- use App\Models\ProductionOrderItem;
- use Illuminate\Foundation\Testing\RefreshDatabase;
- use Tests\TestCase;
- class ProductionOrderTest extends TestCase
- {
- use RefreshDatabase;
- public function test_order_relations_keep_items_deliveries_and_installations_normalized(): void
- {
- $order = ProductionOrder::factory()->create([
- 'status' => ProductionOrderStatus::InTransit,
- 'execution_type' => ProductionOrderExecutionType::DeliveryAndInstallation,
- ]);
- ProductionOrderItem::factory()->count(2)->for($order)->create();
- ProductionOrderDelivery::factory()->count(2)->for($order)->create();
- ProductionOrderInstallation::factory()->count(2)->for($order)->create();
- $order->load(['items', 'deliveries', 'installations']);
- $this->assertCount(2, $order->items);
- $this->assertCount(2, $order->deliveries);
- $this->assertCount(2, $order->installations);
- $this->assertSame(ProductionOrderStatus::InTransit, $order->status);
- $this->assertSame('В пути', $order->statusLabel());
- $this->assertSame('Доставка + Монтаж', $order->executionTypeLabel());
- }
- }
|