## Route `/upscale-image` ## Scenarios to test ### Upload - [ ] Dropzone visible on load - [ ] Uploading a small JPEG (e.g. 200×150) loads the image and shows original dimensions - [ ] Uploading a PNG works ### Scale selector - [ ] Scale options 2×, 3×, 4× are present and selectable - [ ] Selecting 2× shows expected output dimensions (2× the input) - [ ] Selecting 4× shows expected output dimensions (4× the input) ### Mode selector - [ ] "Smooth" mode option is present (for photos) - [ ] "Crisp" mode option is present (for pixel art / line art) - [ ] Selecting different modes updates the processing approach ### Upscale processing - [ ] Clicking "Upscale" starts the process - [ ] A progress indicator or loading state is shown during processing - [ ] The output image is displayed when done - [ ] The output dimensions match the selected scale factor × input dimensions ### Download - [ ] Download button triggers a file download after upscaling completes - [ ] Downloaded file dimensions are correct (verified via image metadata or canvas) ### Auth gating (if applicable) - [ ] If upscaling is restricted to Pro users, a logged-out user sees an upgrade prompt rather than crashing ### Error handling - [ ] Uploading a very large image (>10 MB) shows a file-size warning if applicable - [ ] Network errors during upscale API call show a user-readable error message ## Acceptance criteria - Upscale completes for a 200×150 input at 2× → 400×300 output - Download produces a file with correct dimensions
Route
/upscale-imageScenarios to test
Upload
Scale selector
Mode selector
Upscale processing
Download
Auth gating (if applicable)
Error handling
Acceptance criteria