muller-reporting-sys/TESTING_GUIDE.md
2025-11-12 22:21:35 +03:00

337 lines
8.7 KiB
Markdown

# Testing Guide
## Quick Start
1. **Start the development server:**
```bash
npm run dev
```
2. **Open your browser:**
Navigate to http://localhost:3000
---
## Test Scenarios
### Scenario 1: Admin Login & System Setup
**Login:**
- Email: `admin@muller.com`
- Password: `admin123`
- User Type: Admin
**What to test:**
- ✅ View dashboard statistics
- ✅ Navigate to Teams page
- ✅ Navigate to Workers page
- ✅ Navigate to Managers page
- ✅ Navigate to Machines page
- ✅ Verify all 4 teams are listed
- ✅ Verify all 36 workers are listed
- ✅ Verify all 4 shift managers are listed
- ✅ Verify all 7 machines are listed
- ✅ Test logout functionality
---
### Scenario 2: Shift Manager - Create Shift
**Login:**
- Email: `james.anderson@muller.com`
- Password: `muller123`
- User Type: Shift Manager
**What to test:**
1. ✅ View shift manager dashboard
2. ✅ Navigate to "Create Shift" page
3. ✅ Select shift type (AM or PM)
4. ✅ Select today's date
5. ✅ Select "Red Team"
6. ✅ Assign 7 operators to the 7 machines:
- T1: David Wilson (RED-OP1)
- T2: Robert Brown (RED-OP2)
- T3: William Davis (RED-OP3)
- T4: Richard Miller (RED-OP4)
- T5: Joseph Moore (RED-OP5)
- T6: Thomas Taylor (RED-OP6)
- T7: Charles Jackson (RED-OP7)
7. ✅ Click "Create Shift"
8. ✅ Verify shift appears in "Shifts" page
9. ✅ Verify shift status is "Active"
10. ✅ Test logout
---
### Scenario 3: Operator - View Active Shift
**Login:**
- Email: `david.wilson.red@muller.com`
- Password: `muller123`
- User Type: Operator
**What to test:**
1. ✅ View operator dashboard
2. ✅ Verify active shift is displayed
3. ✅ Verify shift details (date, team, machine, shift time)
4. ✅ Click "Open Report" button
5. ✅ Verify report page loads with basic info section
---
### Scenario 4: Operator - Fill Out Report
**Prerequisites:** Complete Scenario 2 & 3 first
**Login:** Same as Scenario 3
**What to test:**
#### A. Safety Checklist
1. ✅ Check all 6 safety items
2. ✅ Click "Save"
3. ✅ Verify data persists after page refresh
#### B. Production Pre-Checks
1. ✅ Enter Wall Thickness values (Top, Label Panel, Base, Neck)
2. ✅ Enter Section Weights values
3. ✅ Enter Station 1 Weights values
4. ✅ Click "Save"
5. ✅ Verify data persists
#### C. Production Parameters
1. ✅ Click "Add Hourly Temperature Parameters"
2. ✅ Enter Melt Temp (e.g., 220)
3. ✅ Enter Reg % (default 35.5)
4. ✅ Enter Head PSI (e.g., 150)
5. ✅ Click "Add"
6. ✅ Verify entry appears in table
7. ✅ Add 2-3 more entries
8. ✅ Verify all entries are displayed
#### D. Bottle Weight Tracking
1. ✅ Click "Add Weight Tracking"
2. ✅ Enter weights for 4 bottles (e.g., 33.8, 34.1, 34.0, 33.9)
3. ✅ Click "Add"
4. ✅ Verify chart updates with new data point
5. ✅ Verify average is calculated automatically
6. ✅ Add 2-3 more entries
7. ✅ Verify chart shows trend lines (average, upper/lower limits, target)
#### E. Hourly Quality Checks
1. ✅ Click "Add Quality Check"
2. ✅ Check relevant inspection items
3. ✅ Enter Base Weight and Neck Weight
4. ✅ Click "Add"
5. ✅ Verify entry appears in table
#### F. Production Tracking
1. ✅ Click "Add Production Tracking"
2. ✅ Enter Hour (e.g., "8:00 AM")
3. ✅ Enter Total Production This Shift
4. ✅ Enter Production This Hour
5. ✅ Add optional comment
6. ✅ Click "Add"
7. ✅ Verify entry appears in table
#### G. Seam Leak Test
1. ✅ Click "Add Seam Leak Test"
2. ✅ Enter time
3. ✅ Click "Add Mould" button
4. ✅ Enter Mould Number (e.g., 5)
5. ✅ Select Pass/Fail
6. ✅ Add 2-3 more moulds
7. ✅ Click "Save Test"
8. ✅ Verify test appears with all moulds
#### H. Film Details
1. ✅ Click "Add New Film"
2. ✅ Enter Width
3. ✅ Enter Roll Number
4. ✅ Enter Product Code
5. ✅ Enter Pallet Number
6. ✅ Click "Add"
7. ✅ Verify film entry appears in table
#### I. Production Data
1. ✅ Verify Average Weight is auto-calculated
2. ✅ Enter Total Bags Made
3. ✅ Enter Quality Metrics (Height fails, Top Load fails, etc.)
4. ✅ Enter Output Metrics (Wheel Output, Total Good Bottles, etc.)
5. ✅ Click "Save"
6. ✅ Verify data persists
---
### Scenario 5: Multiple Teams & Shifts
**Test concurrent operations:**
1. ✅ Login as Green Team manager (sarah.mitchell@muller.com / muller123)
2. ✅ Create a shift for Green Team
3. ✅ Assign Green Team operators
4. ✅ Logout
5. ✅ Login as Green Team operator (daniel.white.green@muller.com / muller123)
6. ✅ Verify active shift appears
7. ✅ Open report and add some data
8. ✅ Logout
9. ✅ Login as Red Team operator (david.wilson.red@muller.com / muller123)
10. ✅ Verify only Red Team shift appears (not Green Team)
11. ✅ Verify report data is separate from Green Team
---
### Scenario 6: Shift Closure & Archive
**Prerequisites:** Complete Scenario 2
**Login as Shift Manager:**
- Email: `james.anderson@muller.com`
- Password: `muller123`
**What to test:**
1. ✅ Navigate to "Shifts" page
2. ✅ Find the active shift
3. ✅ (Note: Shift closure functionality needs to be implemented)
4. ✅ After closure, verify shift status changes to "Closed"
**Login as Operator:**
- Email: `david.wilson.red@muller.com`
- Password: `muller123`
**What to test:**
1. ✅ Verify closed shift no longer appears in "Active Shifts"
2. ✅ Navigate to "Shifts Archive"
3. ✅ Verify closed shift appears in archive
4. ✅ Verify report is read-only (cannot edit)
---
## Test Data Summary
### Admin
- **1 account** with full system access
### Shift Managers (4)
- Red Team: james.anderson@muller.com
- Green Team: sarah.mitchell@muller.com
- Blue Team: michael.thompson@muller.com
- Yellow Team: emma.roberts@muller.com
- **All passwords:** muller123
### Operators (28 total - 7 per team)
- Red Team: david.wilson.red@muller.com (and 6 more)
- Green Team: daniel.white.green@muller.com (and 6 more)
- Blue Team: andrew.rodriguez.blue@muller.com (and 6 more)
- Yellow Team: ronald.king.yellow@muller.com (and 6 more)
- **All passwords:** muller123
### Machines (7)
- T1, T2, T3, T4, T5, T6, T7
---
## Expected Behaviors
### Authentication
- ✅ Invalid credentials show error message
- ✅ Successful login redirects to role-specific dashboard
- ✅ Logout returns to login page
- ✅ Protected routes redirect to login if not authenticated
### Data Persistence
- ✅ All form data saves to database
- ✅ Data persists after page refresh
- ✅ Data persists after logout/login
### Role-Based Access
- ✅ Admin can access admin pages only
- ✅ Shift Manager can access shift manager pages only
- ✅ Operator can access operator pages only
- ✅ Users cannot access other roles' pages
### Shift Assignment
- ✅ Operators only see shifts they're assigned to
- ✅ Operators only see reports for their assigned machine
- ✅ Multiple operators can work simultaneously on different machines
### Data Isolation
- ✅ Each operator's report is separate
- ✅ Each shift's data is separate
- ✅ Teams' data is isolated from each other
---
## Known Issues / Future Enhancements
1. **Shift Closure:** Need to implement shift closure functionality for shift managers
2. **Password Reset:** No password reset functionality yet
3. **Email Notifications:** Not implemented
4. **PDF Export:** Report PDF export not implemented
5. **Real-time Updates:** No WebSocket for real-time collaboration
6. **Mobile App:** Web-only, no native mobile app
7. **Advanced Analytics:** No analytics dashboard yet
---
## Performance Testing
### Load Testing Scenarios
1. ✅ Create 10+ shifts
2. ✅ Add 50+ report entries
3. ✅ Test with multiple concurrent users
4. ✅ Test chart rendering with large datasets
5. ✅ Test database query performance
### Browser Compatibility
- ✅ Chrome
- ✅ Firefox
- ✅ Safari
- ✅ Edge
- ✅ Mobile browsers (iOS Safari, Chrome Mobile)
---
## Troubleshooting
### Cannot Login
- Verify database is running
- Check DATABASE_URL in .env
- Verify seed data was created successfully
- Check browser console for errors
### Data Not Saving
- Check browser console for API errors
- Verify Prisma client is generated
- Check database connection
- Verify API routes are working
### Charts Not Displaying
- Verify recharts is installed
- Check browser console for errors
- Verify data format is correct
- Test with sample data
### Shift Not Appearing for Operator
- Verify shift was created for today's date
- Verify operator is assigned to the shift
- Verify shift status is "active"
- Check database records
---
## Success Criteria
✅ All user roles can login successfully
✅ Admin can view and manage all system entities
✅ Shift managers can create and manage shifts
✅ Operators can view assigned shifts
✅ Operators can fill out complete reports
✅ All data persists correctly
✅ Charts display correctly
✅ Role-based access control works
✅ Mobile responsive design works
✅ No critical errors in console