Equipment Shipping E2E Test: Full UPS Integration Flow
Summary
Document and verify the complete end-to-end flow for UPS shipping integration in the Equipment module. This needs testing before the feature can be considered complete.
Prerequisites Checklist
Before shipping can work, equipment must have specs:
- [ ] Equipment types have
weight_lbspopulated - [ ] Equipment types have dimensions (
length_in,width_in,height_in) - [ ] Locations have valid shipping addresses
Current state: All equipment types have NULL weight/dimensions. Shipping quotes will use default profiles (25 lbs, 24x18x12") which may not be accurate.
Full Flow to Test
1. Equipment Setup (Inventory Admin)
- [ ] Add equipment type with weight and dimensions
- [ ] Verify specs display in inventory management
- [ ] Confirm specs are returned by
/api/equipment-types
2. Request Submission (Hotel/Requester)
- [ ] Submit equipment request with:
- Job name
- Need-by date
- Return date (needed_until_date)
- Equipment items with quantities
- [ ] Verify request shows in "My Orders"
3. Approval with Shipping (Warehouse/Source)
- [ ] View request in "Incoming Requests"
- [ ] Expand card to load shipping quotes
- [ ] Verify quotes show with prices and delivery dates
- [ ] Select shipping service
- [ ] Approve request
- [ ] Verify UPS label is generated
- [ ] Verify tracking number is saved to request
4. Shipment Tracking (Both Perspectives)
- [ ] Warehouse view: Tracking number displays, can click to view on UPS
- [ ] Hotel view: Tracking number displays in "My Orders"
- [ ] Expand card to see tracking details (status, events, ETA)
5. Mark Fulfilled
- [ ] Warehouse marks request as fulfilled
- [ ] Status updates to "Fulfilled"
6. Return Label (Hotel/Requester)
- [ ] Hotel views fulfilled request in "My Orders"
- [ ] "Create Return Label" button appears (if return date set)
- [ ] Click button, label downloads
- [ ] Return tracking number saved and displays
- [ ] Button replaced with return tracking link
API Endpoints Involved
| Endpoint | Purpose |
|----------|---------|
| GET /api/equipment-types | List equipment with specs |
| POST /api/requests | Submit request |
| GET /api/requests/{id}/shipping-quotes | Get UPS quotes |
| POST /api/requests/{id}/select-shipping | Save selected service |
| POST /api/requests/{id}/approve | Approve + create label |
| GET /api/requests/{id}/tracking | Get tracking details |
| POST /api/requests/{id}/return-label | Create return label |
Known Issues
- Equipment specs are all NULL - need to populate via UI or migration
- No UI for editing equipment dimensions/weight yet
- Default shipping profiles used as fallback (may be inaccurate)
Success Criteria
- [ ] Complete flow works without errors
- [ ] Tracking visible to both sender and receiver
- [ ] Return labels can be created by receiver
- [ ] Shipping costs calculated based on actual equipment specs
Labels: app:equipment, testing
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗