## Routes - `/qr-code-generator` - `/qr-code-for-url` ## Scenarios to test ### URL QR code - [ ] Page loads with a URL input field - [ ] Entering a valid URL (e.g. `https://example.com`) renders a QR code in the canvas/SVG - [ ] The QR code updates as the user types (debounced or on submit) - [ ] Entering an empty string shows an empty state or placeholder - [ ] QR code is scannable (visual check — correct square pattern rendered) ### WiFi QR code - [ ] A WiFi tab or section is accessible - [ ] SSID input, password input, and security type selector (WPA/WPA2/WEP/None) are present - [ ] Filling in SSID and password generates a QR code - [ ] Changing security type updates the QR data - [ ] Hidden network checkbox is present and toggles ### vCard QR code - [ ] A vCard/Contact tab or section is accessible - [ ] Input fields for first name, last name, phone, email, and URL are present - [ ] Filling in at least name and phone generates a QR code - [ ] The QR data encodes a valid vCard format ### Customization options - [ ] Size slider or selector is present and changes the rendered QR size - [ ] Foreground color picker is present; changing it updates the QR color - [ ] Background color picker is present; changing it updates the background - [ ] Error correction level selector (L/M/Q/H) is present ### Download - [ ] "Download PNG" button triggers a PNG download - [ ] "Download SVG" button (if present) triggers an SVG download - [ ] Downloaded PNG is a valid QR code image (not blank or corrupted) ## Acceptance criteria - URL QR renders immediately after typing a URL - WiFi and vCard QRs render with valid inputs - PNG download works for all three QR types
Routes
/qr-code-generator/qr-code-for-urlScenarios to test
URL QR code
https://example.com) renders a QR code in the canvas/SVGWiFi QR code
vCard QR code
Customization options
Download
Acceptance criteria