Car-Repairs-Shop/tests/Feature/Estimates/EstimatePdfTest.php
sackey e3b2b220d2
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (push) Waiting to run
Enhance UI and functionality across various components
- Increased icon sizes in service items, service orders, users, and technician management for better visibility.
- Added custom loading indicators with appropriate icons in search fields for vehicles, work orders, and technicians.
- Introduced invoice management routes for better organization and access control.
- Created a new test for the estimate PDF functionality to ensure proper rendering and data integrity.
2025-08-16 14:36:58 +00:00

59 lines
1.7 KiB
PHP

<?php
declare(strict_types=1);
namespace Tests\Feature\Estimates;
use App\Livewire\Estimates\Show;
use App\Models\Estimate;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;
use Tests\TestCase;
class EstimatePdfTest extends TestCase
{
use RefreshDatabase;
public function test_estimate_show_component_can_be_mounted(): void
{
// Create test user with admin permissions
$user = User::factory()->create();
$user->assignRole('admin');
// Create a simple estimate
$estimate = Estimate::factory()->create([
'estimate_number' => 'TEST-001',
'status' => 'draft',
'total_amount' => 100.00,
]);
// Test the Show component can be mounted
$component = Livewire::actingAs($user)
->test(Show::class, ['estimate' => $estimate])
->assertOk();
// Verify estimate is loaded correctly
$this->assertEquals($estimate->id, $component->estimate->id);
$this->assertEquals($estimate->estimate_number, $component->estimate->estimate_number);
}
public function test_pdf_template_renders_without_errors(): void
{
$estimate = Estimate::factory()->create([
'estimate_number' => 'TEST-PDF-001',
'status' => 'draft',
'total_amount' => 150.00,
]);
// Test that the PDF view can be rendered
$view = view('estimates.pdf', compact('estimate'));
$this->assertNotNull($view);
$html = $view->render();
$this->assertStringContainsString('ESTIMATE', $html);
$this->assertStringContainsString($estimate->estimate_number, $html);
}
}