From 5a16772639b07bfcb0b6fe4784d7fc532b512dbc Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 26 Feb 2026 17:36:45 -0500 Subject: [PATCH] feat(badges): auto-navigate to badge search after print --- .../badges/[badge_id]/ae_comp__badge_obj_view.svelte | 7 ++++--- tests/event_badge_attendee_workflow.test.ts | 11 ++--------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view.svelte b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view.svelte index d27b6009..1ced7ea1 100644 --- a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view.svelte +++ b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view.svelte @@ -23,6 +23,7 @@ // *** Import Svelte specific import { browser } from '$app/environment'; + import { goto } from '$app/navigation'; // *** Import other supporting libraries // import { liveQuery } from 'dexie'; @@ -508,10 +509,10 @@ print_status = 'done'; console.log(`Badge printed. Count: ${data_to_update.print_count}`); - // Reset status after 2 seconds + // Brief success flash, then return to badge search setTimeout(() => { - print_status = 'idle'; - }, 2000); + goto(`/events/${event_id}/badges`); + }, 1000); } catch (error) { console.error('Error printing badge:', error); print_status = 'error'; diff --git a/tests/event_badge_attendee_workflow.test.ts b/tests/event_badge_attendee_workflow.test.ts index 4bb64790..5d813bf8 100644 --- a/tests/event_badge_attendee_workflow.test.ts +++ b/tests/event_badge_attendee_workflow.test.ts @@ -337,15 +337,8 @@ test.describe('Event Badge - Attendee Workflow', () => { expect(print_json.print_first_datetime).toBeDefined(); console.log(`✅ Badge printed. Count: ${print_json.print_count}`); - await page.waitForTimeout(500); - - // Step 6: Return to badge search - const back_button = page.getByRole('link', { name: /Back to Search/i }); - await back_button.waitFor({ state: 'visible', timeout: 3000 }); - await back_button.click(); - - // Verify we're back at the badge search page - await expect(page).toHaveURL(new RegExp(`/events/${event_id}/badges`), { timeout: 5000 }); + // After print, the page automatically navigates back to badge search + await expect(page).toHaveURL(new RegExp(`/events/${event_id}/badges$`), { timeout: 5000 }); await expect(page.locator('#badge_fulltext_search_qry_str')).toBeVisible({ timeout: 5000 }); console.log('✅ Returned to badge search - ready for next attendee'); });