Equipment Shipping E2E Test: Full UPS Integration Flow

Resolved 💬 2 comments Opened Jan 31, 2026 by audiovideoron Closed Jan 31, 2026

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_lbs populated
  • [ ] 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

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗