- Implemented the customer portal workflow progress component with detailed service progress tracking, including current status, workflow steps, and contact information. - Developed a management workflow analytics dashboard featuring key performance indicators, charts for revenue by branch, labor utilization, and recent quality issues. - Created tests for admin-only middleware to ensure proper access control for admin routes. - Added tests for customer portal view rendering and workflow integration, ensuring the workflow service operates correctly through various stages. - Introduced a .gitignore file for the debugbar storage directory to prevent unnecessary files from being tracked.
11 KiB
GUI Testing Guide for 11-Step Automotive Repair Workflow
🌐 Prerequisites
- Development server running on
http://localhost:8000(or your configured port) - Database seeded with test data
- User accounts with different roles (Admin, Service Advisor, Service Coordinator, Technician)
🚀 Step-by-Step GUI Testing
Phase 1: Setup and Login
1. Access the Application
- Open browser and navigate to:
http://localhost:8000 - You should see the login page or be redirected based on authentication
2. Create Test Users (if needed)
# Run this in terminal to create test users
php artisan tinker --execute="
// Create test users with different roles
\$admin = App\Models\User::factory()->create([
'name' => 'Test Admin',
'email' => 'admin@test.com',
'password' => bcrypt('password'),
'role' => 'admin'
]);
\$advisor = App\Models\User::factory()->create([
'name' => 'Service Advisor',
'email' => 'advisor@test.com',
'password' => bcrypt('password'),
'role' => 'service_advisor'
]);
\$coordinator = App\Models\User::factory()->create([
'name' => 'Service Coordinator',
'email' => 'coordinator@test.com',
'password' => bcrypt('password'),
'role' => 'service_coordinator'
]);
\$technician = App\Models\User::factory()->create([
'name' => 'Technician',
'email' => 'tech@test.com',
'password' => bcrypt('password'),
'role' => 'technician'
]);
echo 'Test users created successfully!';
"
3. Create Test Customer and Vehicle Data
php artisan tinker --execute="
\$customer = App\Models\Customer::factory()->create([
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'john.doe@example.com',
'phone' => '555-0123'
]);
\$vehicle = App\Models\Vehicle::factory()->create([
'customer_id' => \$customer->id,
'make' => 'Toyota',
'model' => 'Camry',
'year' => 2020,
'vin' => '1234567890ABCDEFG',
'license_plate' => 'ABC123'
]);
echo 'Test customer and vehicle created: Customer ID ' . \$customer->id . ', Vehicle ID ' . \$vehicle->id;
"
Phase 2: Workflow Testing
🔹 Step 1: Vehicle Reception (STATUS_RECEIVED)
Login as Service Advisor (advisor@test.com / password)
-
Navigate to Job Cards
- Go to
/job-cardsor find "Job Cards" in the navigation - Click "Create New Job Card" or similar button
- Go to
-
Fill Out Reception Form
- Customer: Select "John Doe" from dropdown
- Vehicle: Select "Toyota Camry (ABC123)"
- Branch Code: Select "ACC"
- Arrival Date/Time: Current date/time
- Mileage In: Enter "75000"
- Fuel Level In: Select "Half"
- Customer Reported Issues: Enter "Engine making noise during acceleration"
- Vehicle Condition Notes: Enter "Vehicle appears clean, customer reports issue started 2 weeks ago"
- Keys Location: Select "Service Desk"
- Personal Items Removed: Check the box
- Photos Taken: Check the box
-
Submit and Verify
- Click "Create Job Card"
- Verify job card number starts with "ACC/" (e.g., ACC/00001)
- Verify status shows "Vehicle Received"
- Note the Job Card ID for next steps
🔹 Step 2: Initial Inspection (STATUS_INSPECTED)
Stay logged in as Service Advisor or switch to Inspector role
-
Access Job Card
- Find the job card created in Step 1
- Click "View" or "Edit" to open job card details
-
Perform Initial Inspection
- Look for "Initial Inspection" button or tab
- Fill out inspection checklist:
- Engine: Select "Fair"
- Brakes: Select "Good"
- Tires: Select "Excellent"
- Oil Level: Select "Full"
- Coolant Level: Select "Full"
- Battery: Select "Good"
- Overall Condition: Enter "Engine requires diagnosis, other systems in good condition"
- Inspector Notes: Enter "Noise audible during test drive, engine vibration detected"
-
Complete Inspection
- Click "Complete Initial Inspection"
- Verify status changes to "Initial Inspection Complete"
- Check that inspection data is saved in the system
🔹 Step 3: Service Assignment (STATUS_ASSIGNED_FOR_DIAGNOSIS)
Login as Admin or Service Manager
-
Access Job Card Management
- Navigate to job cards list
- Find the inspected job card
- Click "Assign for Diagnosis"
-
Assign to Service Coordinator
- Service Coordinator: Select "Service Coordinator" from dropdown
- Priority Level: Select "Medium"
- Estimated Completion: Set date 2-3 days from now
- Assignment Notes: Enter "Please diagnose engine noise issue"
-
Confirm Assignment
- Click "Assign"
- Verify status changes to "Assigned for Diagnosis"
- Check that diagnosis record is created
Phase 3: Customer Portal Testing
🔹 Test Customer Portal Access
- Create Customer User Account
php artisan tinker --execute="
\$customer = App\Models\Customer::where('email', 'john.doe@example.com')->first();
\$customerUser = App\Models\User::factory()->create([
'name' => \$customer->first_name . ' ' . \$customer->last_name,
'email' => \$customer->email,
'password' => bcrypt('password'),
'role' => 'customer'
]);
// Link customer to user
\$customer->update(['user_id' => \$customerUser->id]);
echo 'Customer user account created';
"
-
Login as Customer (
john.doe@example.com/password)- Should be redirected to
/customer-portal - Should see dashboard with active job cards
- Should be redirected to
-
Test Workflow Progress Component
- Navigate to job card details
- Verify progress visualization shows:
- ✅ Step 1: Vehicle Reception (Completed)
- ✅ Step 2: Initial Inspection (Completed)
- 🔄 Step 3: Service Assignment (Current)
- ⏳ Steps 4-11: Pending
- Check progress percentage calculation
- Verify service advisor contact information displays
Phase 4: Management Analytics Testing
🔹 Test Management Dashboard
Login as Admin (admin@test.com / password)
-
Access Analytics Dashboard
- Navigate to
/reports/workflow-analytics - Should see comprehensive dashboard
- Navigate to
-
Verify Key Metrics Display
- Total Revenue: Should show calculated amount
- Completed Jobs: Should show count
- Average Turnaround: Should show days
- Quality Alerts: Should show count
-
Test Filtering
- Branch Filter: Select different branches (ACC, KSI)
- Time Period: Test "Last 7 Days", "Last 30 Days", etc.
- Verify charts and data update accordingly
-
Test Export Functionality
- Click "Export Workflow Report"
- Click "Export Labor Utilization"
- Click "Export Quality Metrics"
- Verify files download or reports generate
Phase 5: Advanced Workflow Testing
🔹 Test Workflow Progression Validation
-
Create New Job Card
- Create another job card in "Received" status
-
Try to Skip Steps
- Attempt to assign directly to diagnosis without inspection
- Should see validation error preventing invalid progression
-
Test Status Transitions
- Progress through each step in correct order
- Verify each status change is properly recorded
- Check timestamps are accurate
🔹 Test Quality Control System
-
Complete Initial Inspection
- Record inspection with some "Fair" or "Poor" ratings
-
Later Complete Final Inspection
- Record outgoing inspection with improved ratings
- System should detect improvements automatically
-
Generate Quality Alerts
- Create scenario where outgoing inspection is worse than incoming
- Verify quality alert is generated and displayed
Phase 6: Multi-Branch Testing
🔹 Test Branch-Specific Operations
-
Create Job Cards for Different Branches
- Create job card with branch code "ACC"
- Create job card with branch code "KSI"
- Create job card with branch code "NBO"
-
Verify Branch-Specific Numbering
- ACC jobs should have format: ACC/00001, ACC/00002, etc.
- KSI jobs should have format: KSI/00001, KSI/00002, etc.
- Numbering should be independent per branch
-
Test Branch Filtering
- In analytics dashboard, filter by specific branch
- Verify only that branch's data appears
- Test "All Branches" shows combined data
Phase 7: Error Handling and Edge Cases
🔹 Test Error Scenarios
-
Invalid Data Entry
- Try submitting forms with missing required fields
- Verify validation messages appear
- Check error handling is user-friendly
-
Workflow Validation
- Try accessing steps out of order
- Verify proper error messages
- Ensure system maintains data integrity
-
Permission Testing
- Login as different user roles
- Verify role-based access restrictions
- Test that users only see appropriate sections
🎯 Expected Results Checklist
✅ Job Card Management
- Job cards can be created with proper branch-specific numbering
- Status progression follows 11-step workflow correctly
- All required fields are validated properly
- Data persists correctly between steps
✅ Customer Portal
- Customers can view their job card progress
- Progress visualization shows current step clearly
- Estimated completion times display
- Contact information is accessible
✅ Management Analytics
- Dashboard loads without errors
- All metrics calculate correctly
- Filtering works across branches and time periods
- Export functionality generates reports
✅ Quality Control
- Inspection checklists save properly
- Quality comparisons detect improvements/issues
- Quality alerts generate when appropriate
- Historical inspection data is preserved
✅ User Experience
- Navigation is intuitive across all user roles
- Loading times are acceptable
- Error messages are clear and helpful
- Interface is responsive on different screen sizes
🚨 Troubleshooting Common Issues
Issue: "Page Not Found" Errors
Solution: Check routes are properly registered in routes/web.php
Issue: Permission Denied
Solution: Verify user has correct role and permissions
Issue: Database Errors
Solution: Ensure migrations are up to date: php artisan migrate
Issue: Livewire Component Not Loading
Solution: Clear cache: php artisan view:clear && php artisan route:clear
Issue: Missing CSS/JS Assets
Solution: Build assets: npm run build or npm run dev
📋 Testing Completion Verification
Once you've completed all testing phases, verify:
- Workflow Integrity: Each step transitions correctly
- Data Consistency: Information persists accurately
- User Experience: Interface is intuitive for all roles
- Performance: Pages load quickly and smoothly
- Error Handling: Graceful handling of invalid operations
- Security: Proper access controls for different user types
Your 11-step automotive repair workflow is now fully tested and ready for production use! 🎉