Skip to main content

PreferenceDiscoveryChat Manual Test Checklist

Prerequisites

  1. Start the dev server: npm run dev
  2. Navigate to a plan creation flow where the PreferenceDiscoveryChat is rendered (Step 7)
  3. Clear localStorage before each test session: localStorage.clear() in browser console

1. Capability Disclosure Banner

#Test CaseStepsExpected ResultPass/Fail
1.1Banner appears on startLoad the chat freshBlue "How this works" banner is visible[ ]
1.2Banner content correctRead the bannerLists 4 bullet points explaining capabilities[ ]
1.3Banner dismissibleClick the X buttonBanner disappears[ ]
1.4Banner stays hiddenDismiss, continue chatBanner does not reappear after dismissal[ ]
1.5Banner hides after 2 messagesAnswer 2 questionsBanner auto-hides after 2+ messages[ ]

2. Prompt Guidance (Placeholder Text)

#Test CaseStepsExpected ResultPass/Fail
2.1Default placeholderView input when question shownShows Type your answer or click an option above (e.g., "3-4 times a week")[ ]
2.2Open-ended placeholderReach an open-ended questionShows Share anything else that might help (e.g., "I prefer morning workouts")[ ]
2.3Edit mode placeholderClick a preference chip to editShows Enter new value for [preference name]...[ ]

3. "That's Not What I Meant" Button

#Test CaseStepsExpected ResultPass/Fail
3.1Button visibleAfter coach respondsButton appears in feedback area below message[ ]
3.2Button click actionClick the buttonSends "That's not what I meant. Let me clarify..." message[ ]
3.3Coach respondsAfter clickingCoach acknowledges and asks for clarification[ ]
3.4Mobile viewResize to mobile (<640px)Shows only icon (no text)[ ]
3.5Desktop viewView on desktopShows icon + "That's not what I meant" text[ ]

4. Touch Target Sizes (WCAG 2.2)

#Test CaseStepsExpected ResultPass/Fail
4.1Thumbs up buttonInspect elementMin 24x24px (check computed styles)[ ]
4.2Thumbs down buttonInspect elementMin 24x24px[ ]
4.3Regenerate buttonInspect elementMin 24x24px[ ]
4.4Capability dismiss XInspect elementMin 24x24px[ ]
4.5All buttons tappable on mobileTest on mobile/simulatorEasy to tap without accidental clicks[ ]

5. Home/End Keyboard Navigation

#Test CaseStepsExpected ResultPass/Fail
5.1Home keyHave several messages, scroll down, press HomeScrolls to top of conversation[ ]
5.2End keyScroll up, press EndScrolls to bottom of conversation[ ]
5.3Keyboard hintsLook at input areaShows "↑↓ navigate options • Enter select • Home/End scroll"[ ]
5.4Arrow key navigationPress ↓ with options visibleFocus moves through option buttons[ ]
5.5Enter to selectFocus option, press EnterOption is selected/submitted[ ]
5.6Escape to cancel editStart editing a preference, press EscapeEdit mode cancelled[ ]

6. Message Container Accessibility

#Test CaseStepsExpected ResultPass/Fail
6.1role="log" presentInspect messages containerHas role="log" attribute[ ]
6.2aria-live="polite"Inspect messages containerHas aria-live="polite"[ ]
6.3Screen reader announcementUse VoiceOver/NVDA, new message appearsMessage is announced[ ]
6.4Progress bar accessibilityInspect progress barHas role="progressbar" with aria-valuenow[ ]

7. Session Persistence (localStorage)

#Test CaseStepsExpected ResultPass/Fail
7.1Session savedAnswer a question, check localStorageKey mo_preference_chat_[planId] exists[ ]
7.2Session restoredRefresh pageConversation restored with previous messages[ ]
7.3Preferences restoredRefresh pagePreference chips show previously captured values[ ]
7.4Session cleared on completeComplete all questionslocalStorage key removed[ ]
7.524h expiryManually edit timestamp to >24h ago, refreshSession not restored, starts fresh[ ]

8. Smart Auto-Scroll

#Test CaseStepsExpected ResultPass/Fail
8.1Auto-scroll on new messageSend a messageScrolls to bottom automatically[ ]
8.2Pause on user scrollScroll up manuallyAuto-scroll pauses[ ]
8.3Scroll-to-bottom button appearsScroll upFloating button appears at bottom-right[ ]
8.4Button click scrolls downClick the buttonScrolls to latest message[ ]
8.5Button disappears at bottomScroll to bottom or click buttonButton disappears[ ]

9. Edit Previous Answers

#Test CaseStepsExpected ResultPass/Fail
9.1Preference chips visibleAnswer questionsChips appear at bottom showing preferences[ ]
9.2Click to editClick a preference chipEdit mode activates, input pre-filled[ ]
9.3Edit indicator shownIn edit modeYellow banner shows "Editing: [key]"[ ]
9.4Cancel editClick X on edit bannerEdit mode cancelled, input cleared[ ]
9.5Submit editType new value, submitNew value sent to AI for processing[ ]
9.6Chips not editable when completeComplete the flowChips are no longer clickable[ ]

10. Existing Features (Regression)

#Test CaseStepsExpected ResultPass/Fail
10.1Quick-select options workClick an option buttonMessage sent, AI responds[ ]
10.2Multi-select worksOn multi-select question, select multipleCan select multiple, confirm button works[ ]
10.3Free-form input worksType custom responseAI processes and extracts preferences[ ]
10.4Undo button worksClick "Undo last answer"Previous answer undone[ ]
10.5Thumbs up/down worksClick feedback buttonsVisual feedback, state persists[ ]
10.6Regenerate worksClick regenerateAI regenerates response[ ]
10.7Progress bar updatesAnswer questionsProgress bar increases[ ]
10.8Completion stateAnswer all questionsShows "Preferences captured!" success state[ ]

Test Session Notes

Date: Tester: Browser/Device: Notes: