Skip to content

Latest commit

 

History

History
389 lines (274 loc) · 14.9 KB

File metadata and controls

389 lines (274 loc) · 14.9 KB

VelvetLadle Testing Checklist ✅

Premium Subscription Testing (v2.3.0)

Upgrade Screen

  • Limit reached: Add 10 recipes as a free user → verify redirected to upgrade screen
  • No loop: From upgrade screen, tap Go Back → verify returns to Recipes tab (no loop)
  • Coming Soon state: With no RevenueCat keys in .env.local → verify "Coming Soon" box renders cleanly
  • Pricing loads: With RevenueCat keys configured → verify package cards render with correct price strings
  • Trial badge: If offering has intro price configured → verify trial text appears on package card

Purchase Flow

  • Successful purchase: Tap a package → complete sandbox purchase → verify "Welcome to Premium!" alert
  • Navigate after purchase: Confirm success alert → tap "Let's Go!" → verify taken to Add screen with no recipe limit
  • Cancelled purchase: Start purchase → cancel from system dialog → verify no error alert, user still on upgrade screen
  • Failed purchase: Simulate payment failure → verify user-friendly error alert with OK button
  • Premium gate bypassed: Sign in as premium user → navigate to Add → verify no limit alert fires

Restore Purchases

  • Restore with existing sub: Reinstall app / sign in fresh → tap "Restore Purchases" → verify premium re-granted
  • Restore with no sub: Tap "Restore Purchases" on a free account → verify "No Active Subscription" alert
  • Restore failure: Simulate network error during restore → verify "Restore Failed" alert with message
  • Restore hidden without RC keys: With no RevenueCat keys → verify "Restore Purchases" button is not shown

Premium Check in Add Screen

  • Free user at limit: Sign in as free user with 10 recipes → tap Add tab → verify redirected to upgrade screen
  • Premium user at 10+: Sign in as premium user with 10+ recipes → tap Add tab → verify full Add screen shown normally
  • RevenueCat entitlement takes priority: Ensure PurchaseService.isPremium() is checked before subscription_tier metadata

AuthContext / RevenueCat Linkage

  • Login links customer: Sign in with existing account → verify RevenueCat loginUser called (check RC dashboard customer list)
  • Logout anonymises customer: Sign out → verify logoutUser called and no entitlement carried over
  • Session restore links customer: Kill and reopen app with active session → verify customer re-linked on load

🚀� Performance & Stability Testing (v1.2.1)

Render Loop Prevention

  • Quick Categories: Rapidly click Italian → Mexican → Asian categories - verify no "Maximum update depth exceeded" errors
  • Search Filter Stress: Open filters → select ingredients → clear filters → repeat 10 times - verify no crashes
  • Recipe List Navigation: Scroll through recipes → toggle favorites → delete items rapidly - verify smooth performance
  • [ x Tab Switching: Switch between tabs while operations are running - verify no render conflicts

Loading State Management

  • Simultaneous Operations: Try to load recipes while another load is in progress - verify guard prevents issues
  • Demo Data Initialization: Restart app multiple times - verify demo data only initializes once per session
  • Background Tasks: Navigate away and back while recipe is processing - verify stable state

Memory & Performance

  • Long Sessions: Use app for extended periods - verify no memory leaks or performance degradation
  • Large Recipe Lists: Test with 50+ recipes - verify smooth scrolling and filtering
  • Network Interruptions: Test recipe processing with poor network - verify graceful handling

🎯 Recipe Navigation & Viewing (August 2025 Updates)

"View Recipe" Functionality

  • URL Processing: Process a recipe from URL → Click "View Recipe" in success alert → Verify navigation to recipe view
  • Manual Entry: Create a manual recipe → Click "View Recipe" in success alert → Verify navigation to recipe view
  • Existing Recipe: Process a URL for existing recipe → Click "View Recipe" → Verify shows correct existing recipe
  • Add Screen Navigation: From Add tab, create recipe and view → Verify navigates to Recipes tab

Cross-Platform Alerts

  • Mobile Testing: Verify no window.confirm errors on mobile devices
  • Alert Consistency: All alerts use React Native Alert.alert() format
  • Button Actions: Test all alert buttons ("OK", "View Recipe", "Cancel") work correctly
  • Alert Content: Verify alert messages are properly formatted and informative

Enhanced Recipe Editing

  • Edit Mode: Open recipe → Tap edit → Verify form pre-populated with existing data
  • Spell Check: Verify spell check enabled on title, ingredients, directions fields
  • Validation: Test form validation with empty/invalid inputs
  • Save Updates: Make changes → Save → Verify recipe updated in list
  • Cancel Edit: Open edit → Make changes → Cancel → Verify no changes saved

Mobile UX Optimizations

  • Touch Targets: Verify all buttons are easily tappable on mobile (44pt minimum)
  • Button Feedback: Test button press states and visual feedback
  • Modal Responsiveness: Test modal sizing on different screen sizes
  • Keyboard Handling: Test text input with on-screen keyboard

🔍 Search & Filter System Testing

Recipe Search

  • Open app and navigate to Recipes tab
  • Test text search with recipe names (e.g., "pasta", "chicken")
  • Verify search results update in real-time
  • Test empty search returns all recipes

Ingredient Filtering

  • Tap "Filter by Ingredients" to expand
  • Select multiple ingredients (e.g., "tomato", "cheese")
  • Verify only recipes with selected ingredients show
  • Test ingredient deselection removes filter

Cuisine Filtering

  • Tap "Filter by Cuisine" to expand
  • Select cuisine types (e.g., "Italian", "Mexican")
  • Verify cuisine filter works correctly
  • Test combining ingredient + cuisine filters

Combined Search & Filters

  • Type search term AND select ingredients/cuisines
  • Verify all filters work together correctly
  • Test clearing all filters returns full list
  • Check "No recipes found" message for empty results

Favorites System Testing

Recipe Favorites

  • Navigate to Recipes tab
  • Tap ⭐ icon next to any recipe (should fill star)
  • Tap filled ⭐ to remove favorite (should empty star)
  • Open recipe in RecipeViewer
  • Test "Add to Favorites" / "Remove from Favorites" button
  • Verify favorite status syncs between RecipeList and RecipeViewer

URL Favorites

  • On home screen, enter a recipe URL (e.g., "allrecipes.com")
  • Tap "Continue" to open action modal
  • Tap "⭐ Add to Favorites" button
  • Verify URL is saved to favorites
  • Test adding same URL again (should show already favorited)

Favorites Tab

  • Navigate to new "Favorites" tab in bottom navigation
  • Verify favorited recipes appear in "Recipes" tab
  • Verify favorited URLs appear in "URLs" tab
  • Test "All" tab shows both recipes and URLs
  • Tap recipe favorite to open RecipeViewer
  • Tap URL favorite to open in browser

Remove Favorites

  • In Favorites tab, tap ❌ next to any favorite
  • Verify favorite is removed from list
  • Go back to RecipeList and verify star is empty
  • Test removing URL favorites

Share Favorites

  • In Favorites tab, tap 📤 next to any favorite
  • Verify share dialog opens correctly
  • Test sharing recipe vs URL favorites

🌐 URL Processing & Recipe Extraction Testing

URL Input & Validation

  • Empty URL: Test submitting empty URL → Verify error alert
  • Invalid URL: Test malformed URLs → Verify validation error
  • Auto-Protocol: Test URL without https:// → Verify auto-addition of https://
  • Various Domains: Test different recipe sites (AllRecipes, Food Network, etc.)

Recipe Detection & Extraction

  • Valid Recipe Page: Test URL with recipe → Verify successful extraction
  • Non-Recipe Page: Test non-recipe URL → Verify "No Recipe Found" alert
  • Complex Recipes: Test recipes with many ingredients/steps → Verify complete extraction
  • Missing Elements: Test pages with partial recipe data → Verify graceful handling

Duplicate Recipe Handling

  • First Time: Process new recipe URL → Verify saves successfully
  • Duplicate URL: Process same URL again → Verify "Recipe Already Saved" alert
  • View Existing: From duplicate alert → Click "View Recipe" → Verify shows existing recipe

Error Handling

  • Network Error: Test with no internet → Verify network error alert
  • CORS Issues: Test blocked websites → Verify CORS error with alternatives
  • Timeout: Test slow-loading sites → Verify timeout handling
  • Manual Fallback: From error alerts → Click "Enter Manually" → Verify manual entry opens

Processing States

  • Loading Indicator: Verify spinner shows during processing
  • Button Disabled: Verify process button disabled during processing
  • Cancel During Process: Test closing modal during processing → Verify graceful cancellation

📱 Navigation & UI Testing

Tab Navigation

  • Test all 5 bottom tabs work: Home, Recipes, Favorites, Inventory, Profile
  • Verify favorites badge/icon shows correct state
  • Test tab switching preserves state

Theme Consistency

  • Check all new components match app color scheme
  • Verify proper spacing and typography
  • Test on different screen sizes (if possible)
  • Check dark/light mode compatibility (if implemented)

Performance

  • Test app startup time with favorites data
  • Check recipe list scrolling performance
  • Verify search typing is responsive
  • Test favorites loading speed

🗄️ Database & Storage Testing

Supabase Integration (if configured)

  • Add favorite with internet connection
  • Check if favorite persists after app restart
  • Test favorites sync across devices (if multiple devices)
  • Verify database schema matches documentation

Local Storage Fallback

  • Turn off internet/wifi
  • Add recipes to favorites
  • Restart app and verify favorites persist
  • Turn internet back on and test sync

Data Migration

  • Test app upgrade with existing favorites
  • Verify no favorites are lost during updates
  • Check proper data format in both storage systems

🐛 Error Handling Testing

Network Issues

  • Test adding favorites with poor internet
  • Verify graceful fallback to local storage
  • Test sync when connection restored

Edge Cases

  • Test with very long recipe names
  • Add 100+ favorites and test performance
  • Test with special characters in URLs
  • Try invalid URLs in favorites

User Experience

  • Test rapid favorite toggling (stress test)
  • Verify proper loading states/spinners
  • Check error messages are user-friendly
  • Test accessibility features (if implemented)

📋 Integration Testing

Recipe Flow

  1. Search for recipe → Filter results → Favorite recipe
  2. Open recipe → Read details → Add to favorites
  3. Go to favorites → Open recipe → Remove from favorites
  4. Verify entire flow works smoothly

URL Flow

  1. Enter URL → Add to favorites → View in favorites
  2. Open URL from favorites → Bookmark externally
  3. Test with various recipe website URLs
  4. Verify URL validation works correctly

Cross-Feature Testing

  • Search + Filter + Favorite workflow
  • Recipe sharing with favorites integration
  • Inventory tracking with favorite recipes
  • Profile data with favorites statistics

🎯 User Acceptance Criteria

Must Work Perfectly

  • ⭐ Favorite toggle button on all recipes
  • Favorites tab shows all favorited items
  • Favorites persist after app restart
  • Search and filters work correctly
  • URL favorites open in browser

Should Work Well

  • Fast performance on large recipe lists
  • Intuitive user interface
  • Proper error messages
  • Offline functionality
  • Theme consistency

Nice to Have Working

  • Advanced filtering combinations
  • Social sharing features
  • Cross-device sync
  • Advanced search options
  • Analytics/statistics

🚀 Ready for Release Checklist

  • All core functionality tested ✅
  • No critical bugs found ✅
  • Performance acceptable ✅
  • User interface polished ✅
  • Documentation updated ✅
  • Database schema finalized ✅
  • Error handling implemented ✅
  • Offline mode working ✅
  • Premium purchase flow tested on device ✅
  • Restore Purchases tested ✅

📱 Post-Release Monitoring

Key Metrics to Watch

  • Favorites usage rate
  • Search/filter engagement
  • App performance with favorites
  • User retention with favorites
  • Error rates in favorites system

User Feedback Areas

  • Ease of favoriting recipes
  • Usefulness of search/filters
  • Performance with many favorites
  • Missing features or improvements
  • UI/UX suggestions

Testing Notes:

  • Test on multiple devices if available
  • Try both Android and iOS if possible
  • Test with different data volumes (few vs many recipes)
  • Focus on real-world usage scenarios
  • Document any bugs or issues found

🧪 Testing Data

Sample Recipes for Testing

  • Add 10+ recipes with a variety of cuisines, ingredient counts, and difficulty levels
  • Include recipes with long ingredient lists (20+ items)
  • Include recipes with minimal ingredients (3-5 items)
  • Add recipes with and without images
  • Add recipes with special characters and emojis in titles/ingredients
  • Add recipes with missing optional fields (e.g., no image, no description)
  • Add recipes with step-by-step images (if supported)

Sample URLs for Testing

  • Use URLs from major recipe sites (AllRecipes, Food Network, NYT Cooking, etc.)
  • Include valid and invalid URLs
  • Test with recipe URLs that require scrolling or login
  • Add duplicate URLs for duplicate handling tests

Sample Favorites Data

  • Favorite a mix of recipes and URLs
  • Add/remove favorites rapidly to test edge cases
  • Test favorites with and without internet connection

Accessibility & Edge Case Data

  • Add recipes with very long names and directions
  • Add recipes with non-English characters
  • Add recipes with accessibility tags (if supported)

Ready to Ship: ✅ All tests passing, features complete, documentation ready!