- #30 FCP XML Export & Conform: slide panel UI, preset system, FCP XML generation, conform job submission with progress polling via BullMQ - #31 Hi-Res Auto-Relink: clip list with checkboxes, batch-trim server endpoint, trimWorker with frame-accurate FFmpeg trimming, auto-relink in Premiere via ExtendScript, temp segment signed URL endpoint - #32 GUI Redesign: complete rewrite with Wild Dragon OKLCH design tokens (accent oklch(45% 0.20 266)), slide panels, preset cards, chip components - #34 Cleanup Task: existing task validated and properly registered - #35 Testing: comprehensive 33-scenario E2E test plan - #36 Documentation: advanced features guide with workflows, troubleshooting, presets table, and architecture overview - #24 PR merge: verified mergeable All server endpoints, worker queues, and ExtendScript functions wired together
13 KiB
13 KiB
End-to-End Testing: Advanced Features
Overview
This document covers the comprehensive testing plan for the FCP XML Export & Conform and Hi-Res Auto-Relink features.
Prerequisites
- Running MAM API server (
services/mam-api) - Running Worker service (
services/worker) - Redis instance (for BullMQ)
- S3-compatible storage
- Premiere Pro 2024 (Windows 10/11 or macOS 13+)
- Premiere Pro CEP panel installed and connected to the MAM server
- At least one project with assets in the MAM
- Assets should have hi-res originals uploaded to S3
FCP XML Export & Conform
Test 1: Simple Timeline Export
- Create a new sequence in Premiere with a single video track and 3 clips
- Each clip should be imported through the MAM plugin (to create the asset mapping)
- Click Advanced > Export & Conform Timeline
- Select the "Web Delivery" preset
- Click Start Conform
- Expected: Slide panel closes, progress bar shows job status
- Monitor the job via the Jobs page in the web UI
- Expected: Job transitions through parsing, processing, encoding, uploading
- Expected: New asset appears in the grid with name "Conformed: [Sequence Name]"
- Import the conformed asset and verify playback
Test 2: Complex Timeline (Multi-Track, Transitions)
- Create a sequence with 3 video tracks and 6+ clips total
- Include video transitions (cross-dissolve, dip to color)
- Some clips should have speed/duration changes
- Export and conform using "Broadcast Quality" preset (ProRes)
- Expected: All clips are processed; transitions are rendered into the output
- Expected: Output codec matches ProRes, high quality
Test 3: All Codec Presets
| Preset | Codec | Expected Extension |
|---|---|---|
| Broadcast Quality | ProRes | .mov |
| Web Delivery | H.264 | .mp4 |
| Archive | H.265/HEVC | .mp4 |
| Custom (H.264) | H.264 | .mp4 |
| Custom (ProRes) | ProRes | .mov |
- Run conform job for each preset
- Verify the output codec via
ffprobeor Premiere's project panel
Test 4: All Resolution Options
- Test with "Match Sequence" - output should match the sequence resolution
- Test "4K" - output should be 3840x2160
- Test "1080p" - output should be 1920x1080
- Test "720p" - output should be 1280x720
Test 5: Frame Rate Handling
Test with sequences at each frame rate:
| Frame Rate | Type | Notes |
|---|---|---|
| 23.976 fps | Non-drop | Common for cinema |
| 24 fps | Non-drop | Film standard |
| 25 fps | Non-drop | PAL standard |
| 29.97 fps | Drop-frame | NTSC standard |
| 30 fps | Non-drop | Progressive |
| 59.94 fps | Drop-frame | High-frame rate NTSC |
| 60 fps | Non-drop | High-frame rate progressive |
Verify:
- Timecodes are correct in output
- No frame rate mismatch warnings
- Audio sync is maintained
Test 6: Job Cancellation
- Start a conform job with a long timeline (5+ minutes)
- Before it completes, navigate to the Jobs page
- Cancel the job
- Expected: Job status changes to "cancelled" or "failed"
- Expected: No orphaned partial output in S3
Test 7: Network Failure During Upload
- Start a conform job
- Disconnect the network while the FCP XML is uploading
- Expected: Error message displayed in the plugin
- Reconnect and retry the job
- Expected: Job completes on retry
Test 8: Server Failure During Conform
- Start a conform job
- Restart the worker service while the job is active
- Expected: Job is stalled then moved back to "waiting" by BullMQ's stall detection
- Expected: Worker picks it up on restart and completes it
Test 9: Verify Conformed Asset in MAM
- After conform completes, locate the new asset in the MAM grid
- Verify metadata: correct codec, resolution, frame rate, duration
- Verify the conformed asset has the
conform_source_sequence_idset - Import the asset into a new Premiere sequence
- Verify playback and audio sync
Test 10: Re-Importing Conformed Asset
- After conform, import the conformed asset into a new Premiere project
- Expected: Asset imports and plays correctly
- Verify the asset shows up in the imported assets list
Hi-Res Auto-Relink
Test 11: Relink Single Clip
- Have a sequence with 1 clip that was imported via MAM proxy workflow
- Click Advanced > Fetch & Relink All
- Expected: Clip list shows 1 clip with checkbox checked
- Click Fetch & Relink
- Expected: Server trims the hi-res original to match the timeline clip
- Expected: Clip is relinked in Premiere
- Expected: Success summary shows 1 clip relinked
Test 12: Relink Multiple Clips (5-10)
- Create a sequence with 5-10 clips from various assets
- Run the relink workflow
- Expected: All clips are processed in parallel (concurrency up to 4)
- Expected: All clips are relinked successfully
Test 13: Same Asset, Multiple Instances
- Create a sequence that uses the same source asset in 3 different positions
- Each instance should have different in/out points (different trim ranges)
- Run the relink workflow
- Expected: Each instance gets a separate trimmed segment (different clipInstanceId)
- Expected: Each instance is individually relinked to its trimmed segment
Test 14: Various Codecs
Test with source clips in each codec:
| Codec | Format | Expected |
|---|---|---|
| ProRes 422 | .mov | Segment trims correctly |
| ProRes 4444 | .mov | Alpha channel preserved (if applicable) |
| DNxHR HQ | .mxf | Segment trims correctly |
| H.264 | .mp4 | Segment trims correctly |
| HEVC/H.265 | .mp4 | Segment trims correctly |
| XDCAM | .mxf | Segment trims correctly |
Test 15: Selective Relink (Deselect Some Clips)
- Create a sequence with 5 clips
- Open the clip list and uncheck 2 clips
- Click Fetch & Relink
- Expected: Only the 3 checked clips are relinked
- Expected: The 2 unchecked clips remain as proxies
Test 16: Retry Logic for Failed Relinks
- Simulate a network error during segment download (disconnect Wi-Fi)
- Start the relink workflow
- Expected: Failed clip shows "retry" in the summary
- Reconnect and retry
- Expected: Failed clips are retried and succeed on second attempt
Test 17: Locked Premiere Project
- With a collaborator's project open (if available), or a read-only project
- Run the relink workflow
- Expected: Appropriate error message about project being locked
- Expected: Plugin does not crash
Test 18: Missing Hi-Res Originals
- Create a sequence with a clip whose hi-res original has been deleted from S3
- Run the relink workflow
- Expected: The worker reports "Asset not found" for that clip
- Expected: Summary shows that clip as failed with appropriate error
Test 19: Network Failure During Download
- Start the relink workflow with 3+ clips
- Disconnect the network during the download phase
- Expected: Download fails with network error
- Expected: Summary shows failed clips with "download error" message
- Reconnect and retry
- Expected: Succeeds on retry
Test 20: Temp Segment Cleanup After 24 Hours
- Complete a relink workflow (creates temp segments)
- Verify the temp segment records exist in the database
- Fast-forward the system clock by 25 hours (or set
expires_atto the past) - Wait for the cleanup task to run (within 1 hour)
- Expected: Temp segments are deleted from S3 and database
- Expected: Cleanup log shows "X deleted, 0 errors"
GUI Redesign
Test 21: Visual Consistency with Web-UI
- Open the Premiere plugin panel
- Compare colors with the web-ui (open in browser)
- Verify OKLCH color tokens match:
- Background surfaces (bg-panel, bg-surface, bg-raised)
- Text hierarchy (primary, secondary, tertiary)
- Accent color is the same blue-purple hue
- Status colors (green, red, yellow) match
- Expected: Consistent visual identity between web and Premiere panel
Test 22: Responsive Layout
- Dock the panel at various widths (200px, 400px, 600px)
- Verify the layout adjusts:
- Asset grid columns adapt to available width
- Buttons remain visible at all widths
- Details panel is usable at all widths
- Slide panels render correctly
Test 23: Color Contrast (WCAG AA)
- Measure contrast ratios:
- Text primary on bg-panel: should be ≥ 4.5:1
- Text secondary on bg-panel: should be ≥ 3:1
- Accent text on accent background: should be ≥ 3:1
- Expected: All text meets WCAG AA contrast requirements
Test 24: Font Rendering
- Verify body text renders in Inter (or system fallback)
- Verify metadata and technical values render in JetBrains Mono
- Check font loading from web-ui server (not bundled):
- Look for 404s in the console
- Verify fonts load after server connection is established
Test 25: Button States
Test each button for all states:
| State | Visual Indicator |
|---|---|
| Default | Normal styling |
| Hover | Background lightens, subtle lift |
| Active/Pressed | Returns to default position |
| Disabled | 38% opacity, no pointer events |
Test 26: Slide Panel Animations
- Open the Export & Conform slide panel
- Expected: Panel slides in from the right (translateX animation)
- Close the panel
- Expected: Panel slides out to the right
- Test the same with the Relink clip list panel
- Expected: Smooth 250ms ease-out transitions
Test 27: Progress Indicators
- Start any long-running operation (conform, relink)
- Expected: Progress bar appears with percentage
- Expected: Progress bar fills smoothly
- Expected: Status label updates with current operation
- Expected: Progress bar disappears on completion
Test 28: Toast Notifications
- Perform actions that trigger messages:
- Connect to server → "Connected..." (success)
- Failed connection → "Failed to connect" (error)
- Import complete → "Imported" (success)
- Relink summary → shows success/failure counts (info)
- Expected: Messages appear at the top of the panel
- Expected: Messages auto-dismiss after 5 seconds
- Expected: Success = green, Error = red, Info = accent blue
Performance Testing
Test 29: Conform Job with 30-Minute Timeline
- Create a sequence with 30+ minutes of clips
- Run the conform workflow with H.264 Web Delivery preset
- Measure:
- XML generation time (< 2 seconds)
- Upload time (depends on network)
- Server parsing time (< 5 seconds)
- FFmpeg transcode time (varies by server GPU/CPU)
- Total time
- Expected: Completes within reasonable time (under 30 minutes on GPU-enabled server)
Test 30: Relink 50+ Clips Simultaneously
- Create a sequence with 50+ clips (can duplicate assets)
- Run the relink workflow
- Measure:
- Timeline analysis time
- Server trim queue time
- Total download time
- Expected: All clips processed within reasonable time
- Expected: No timeout errors
Test 31: Multiple Concurrent Conform Jobs
- Start 3 conform jobs in rapid succession
- Expected: Jobs are queued FIFO
- Expected: Only 1 job is active at a time (concurrency: 1)
- Expected: Queued jobs show "waiting" status
- Expected: Each job completes in turn without data corruption
Test 32: Server Load During Peak Usage
- While a conform job is running, perform other operations:
- Browse assets in the web UI
- Upload new files
- Search the asset catalog
- Expected: API remains responsive (under 500ms response time)
- Expected: Conform job continues without error
Test 33: Premiere Pro Responsiveness
- Start a relink workflow for 10 clips
- During the operation, interact with Premiere:
- Scrub the timeline
- Open other panels
- Play back the sequence
- Expected: Premiere remains responsive (no freezing)
Test Environments
| Environment | OS | Premiere Version | Notes |
|---|---|---|---|
| Workstation A | Windows 11 | Premiere Pro 2024 (v24.x) | Primary test environment |
| Workstation B | Windows 10 | Premiere Pro 2024 (v24.x) | Legacy Windows |
| Workstation C | macOS 14 Sonoma | Premiere Pro 2024 (v24.x) | macOS testing |
| Workstation D | macOS 13 Ventura | Premiere Pro 2024 (v24.x) | Legacy macOS |
Network Profiles
| Profile | Bandwidth | Latency | Notes |
|---|---|---|---|
| Local | 1 Gbps | < 1ms | Server on same LAN |
| Fast WAN | 100 Mbps | 10ms | Remote server |
| Slow WAN | 10 Mbps | 50ms | VPN or limited connection |
Acceptance Criteria
- All test scenarios pass
- No crashes or data loss in any tested configuration
- Clear error messages displayed for all failure modes
- Performance meets expectations across all tested environments
- UI matches the Wild Dragon design system specification
- Font loading from web-ui server works (no bundled fonts)
- Temp segment cleanup runs and removes expired data
- Slide panel animations are smooth and meet motion specs
- All button states render correctly
- Color contrast meets WCAG AA standards