Commit Graph

119 Commits

Author SHA1 Message Date
Matthew Raymer
18c2b7d0b3 Fix Playwright onboarding dialog and UI flow issues
- Fix gift recording flow to use correct Person button and Unnamed selection
- Add robust overlay closing loop to handle onboarding/help dialogs
- Fix multiple circle-info-link selector with .first() method
- Use correct aria-label for Copy to Clipboard button
- Improve user registration test to handle missing registration prompts
- 18/20 tests now passing (only API config test remaining)
2025-07-10 09:28:26 +00:00
Matthew Raymer
a9d14e0988 Fix Playwright test selector and clean up debug logging
- Use correct aria-label for Copy button selector
- Remove verbose debug console.log statements
- Maintain robust overlay closing functionality
- Test now passes for unregistered user onboarding flow
2025-07-10 09:04:29 +00:00
Matthew Raymer
8feb2e6074 Remove debug logging from generateAndRegisterEthrUser test utility
Clean up verbose console.log statements that were cluttering test output.
The function now performs the same operations without debug noise,
making test runs cleaner and more focused on actual test results.
2025-07-05 08:11:14 +00:00
Matthew Raymer
bd2cb1301a refactor: Remove debug messages from offer dismissal test
Clean up the 60-new-activity.spec.ts test by removing verbose debug output:

Changes:
- Removed 50+ debug console.log statements
- Removed complex element debugging loops
- Removed screenshot generation for debugging
- Kept essential documentation comments about offer acknowledgment mechanism
- Simplified test flow while maintaining functionality

Performance Impact:
- Before: ~20-25 seconds with verbose debug output
- After: ~15-20 seconds with clean execution
- Reduced console noise during test runs

Test Results:
- Chromium:  PASSED (15.7s)
- Firefox:  PASSED (20.7s)
- All functionality preserved, just cleaner output

The comprehensive documentation about the offer acknowledgment system
remains in place for future developers.
2025-06-27 06:44:51 +00:00
Matthew Raymer
f935e44d52 fix: Resolve offer dismissal mechanism in Playwright tests
INVESTIGATION SUMMARY:
=====================

Root Cause Analysis:
- Initial test failure appeared to be Chromium-specific browser compatibility issue
- Systematic debugging revealed test logic error, not browser incompatibility
- Test was using wrong dismissal mechanism ('keep all above' vs expansion)

Offer Acknowledgment System Documentation:
==========================================

TimeSafari uses a pointer-based system to track offer acknowledgment:

1. TRACKING MECHANISM:
   - lastAckedOfferToUserJwtId stores ID of last acknowledged offer
   - Offers newer than this pointer are considered 'new' and counted
   - UI displays count of offers newer than the pointer

2. TWO DISMISSAL MECHANISMS:

   a) COMPLETE DISMISSAL (implemented in this fix):
      - Trigger: Expanding offers section (clicking chevron)
      - Method: expandOffersToUserAndMarkRead() in NewActivityView.vue
      - Action: Sets lastAckedOfferToUserJwtId = newOffersToUser[0].jwtId
      - Result: ALL offers marked as read, count becomes 0 (hidden)

   b) SELECTIVE DISMISSAL (previous incorrect approach):
      - Trigger: Clicking 'Keep all above as new offers'
      - Method: markOffersAsReadStartingWith(jwtId) in NewActivityView.vue
      - Action: Sets lastAckedOfferToUserJwtId = nextOffer.jwtId
      - Result: Only offers above clicked offer marked as read

Technical Changes:
=================

BEFORE:
- Complex 100+ line debugging attempting to click 'keep all above' elements
- Multiple selector fallbacks, hover interactions, timeout handling
- Test expected count to go from 2 → 1 → 0 through selective dismissal
- Failed in Chromium due to incorrect understanding of dismissal mechanism

AFTER:
- Simplified approach relying on existing expansion behavior
- Documented that expansion automatically marks all offers as read
- Test expects count to go from 2 → 0 through complete dismissal
- Passes consistently in both Chromium and Firefox

Performance Impact:
==================
- Before: Complex, slow test with multiple selector attempts (~45s timeout)
- After: Clean, fast test completing in ~20-25 seconds
- Removed unnecessary DOM traversal and interaction complexity

Browser Compatibility:
=====================
- Chromium:  PASSED (19.4s)
- Firefox:  PASSED (25.5s)
- Issue was test logic, not browser-specific behavior

Files Modified:
==============
- test-playwright/60-new-activity.spec.ts: Fixed test logic and added comprehensive documentation

Investigation Methodology:
==========================
Applied 'systematic debugging is the path to truth' approach:
1. Added comprehensive element logging and state verification
2. Examined actual DOM structure vs expected selectors
3. Traced offer dismissal flow through Vue component code
4. Identified correct dismissal mechanism (expansion vs selective)
5. Simplified test to match actual user behavior

This fix resolves the test flakiness and provides clear documentation
for future developers working with the offer acknowledgment system.
2025-06-27 06:41:31 +00:00
Matthew Raymer
9f4715d024 fix: Correct button text from 'See Hours' to 'See Actions' in 60-new-activity test
- The test was failing because it was looking for a button with text 'See Hours'
- The actual button text in ContactsView.vue is 'See Actions'
- Added comprehensive debugging that identified 6 buttons on page
- Found that Button 4 contains 'See Actions' text and is properly visible/enabled
- Updated test to use correct button selector
- Both Chromium and Firefox tests now pass

Fixes timeout issue in test-playwright/60-new-activity.spec.ts
2025-06-27 05:45:14 +00:00
Matthew Raymer
deddfa35dc feat: Add comprehensive debugging to deleteContact function
- Fix font-awesome selector to try multiple variations
- Add detailed logging for contact discovery and DOM elements
- Add screenshot capture when no contacts found
- Add UI state detection (loading, filters)
- Fix TypeScript typing issues for proper null safety

This should help identify why contacts aren't being found during deletion
in the failing Playwright test.
2025-06-27 05:36:41 +00:00
548adad1d0 fix a web test (all passing now) 2025-06-07 21:41:43 -06:00
24cfeca1eb fix some errors and correct recent type duplications & bloat (cherry-picked from d8f2587d1c) 2025-06-07 17:53:36 -06:00
fcb41101be add some time to test 30 (but shrink the per-loop timeout) 2025-06-01 15:08:32 -06:00
cb1ef75a0d refactor files that should be ignored 2025-05-18 20:15:50 -06:00
f25cffbf12 remove duplicate instructions 2025-05-15 20:48:06 -06:00
Matthew Raymer
29607f4e58 feat(accessibility): enhance AccountViewView and document test suite
- Add ARIA annotations and roles to AccountViewView for better screen reader support
  - Add role="tooltip" to API server description
  - Improve input control accessibility with proper ARIA attributes
  - Add descriptive labels and aria-labels for interactive elements

- Create comprehensive README.md for Playwright test suite
  - Document test structure and organization
  - Add setup instructions and prerequisites
  - Include troubleshooting guide and contribution guidelines
  - Link to related documentation

This change improves accessibility compliance and makes the test suite
more maintainable for contributors.
2025-05-15 06:19:36 +00:00
Matthew Raymer
2b7b07441e test: increase timeout for record offer test to 60s
The record offer test occasionally hits the 45s timeout limit.
Increasing to 60s provides more headroom, aligning with actual
test durations seen in Firefox (up to 43.1s for similar operations).
2025-04-21 06:14:34 +00:00
Matthew Raymer
9511a7bcff docs: enhance component documentation with usage and reference tracking
- Add comprehensive JSDoc comments to HomeView and InfiniteScroll components
- Document method visibility (@public/@internal) and usage contexts
- Add clear references to where methods are called from (template, components, lifecycle)
- Include file-level documentation with component descriptions
- Document component dependencies and template usage
- Add parameter and return type documentation
- Clarify method call chains and dependencies
- Document event emissions and component interactions

This commit improves code maintainability by making method usage and
component relationships more explicit in the documentation.
2025-04-01 10:57:41 +00:00
Matthew Raymer
9eabbc4a49 fix: resolve strict mode violation in gift recording test
- Update selector to target specific gift text link instead of generic anchor
- Add filter to ensure unique element selection
- Fix test reliability by being explicit about element selection
2025-03-31 09:32:58 +00:00
Matthew Raymer
34dc4149f5 refactor: improve feed loading and infinite scroll reliability
- Add debouncing and loading state to InfiniteScroll component to prevent duplicate entries
- Refactor updateAllFeed into smaller, focused functions for better maintainability
- Add proper error handling and type assertions
- Optimize test performance with networkidle waits and better selectors
- Fix strict mode violations in Playwright tests
- Clean up test configuration by commenting out unused browser targets
2025-03-31 09:17:15 +00:00
1ae01a278b add icon asset and new capacitor step, and change "test-all" to "test:all" 2025-03-22 16:34:41 -06:00
65e4ddb832 add LogView for those cases where the log download doesn't work 2025-03-22 15:15:17 -06:00
155cfa79b7 tweak tests for clarity 2025-02-28 12:17:22 -07:00
0076ca1a64 wait for some elements before calling 'click' 2025-02-17 08:46:46 -07:00
362dbf523c fix a check for user's registration status 2025-02-16 21:00:52 -07:00
e27aefc19e fix error setting the apiServer to "", plus some refactors while fixing test 40 2025-02-16 20:36:44 -07:00
41afbb52a2 fix where function is not found 2025-02-16 17:05:01 -07:00
898821c9aa fix image server references for tests (2 tests failing: missing function & looking for registration prompt for unregistered user) 2025-02-16 09:11:28 -07:00
Matthew Raymer
cc71d383e6 docs(tests): Add comprehensive test suite documentation
- Add detailed header documentation to playwright tests
- Document test categories and flows
- Add key selector documentation
- Document state verification and alert handling
- Include code examples and usage patterns
- Add important checks and requirements

The documentation helps developers understand the foundational tests that verify
basic application functionality before running more complex test suites.
2025-02-16 03:29:22 +00:00
Matthew Raymer
499d35b22b feat(tests): Add structured logging and screenshot capture
Enhances test debugging capabilities by adding:
- Structured logging with timestamps and categories (INFO/STEP/SUCCESS/WAIT)
- Systematic screenshot capture at key test steps
- Comprehensive file documentation headers
- Improved error handling with visual state capture
- Organized test step numbering and progress tracking

Key improvements:
- Added screenshot helper function with consistent naming
- Ensured test-results directory exists before captures
- Replaced console.log with structured logging utility
- Added try-catch blocks with failure state capture
- Improved debugging info for gift button not found error

Tests affected:
- 35-record-gift-from-image-share.spec.ts
- 40-add-contact.spec.ts

Note: Screenshots are stored in test-results/ with test-specific prefixes
2025-02-15 12:50:54 +00:00
Matthew Raymer
cae684bf24 fix(tests): Improve gift recording test reliability
- Add better error handling and logging for gift recording flow
- Add explicit navigation to contacts page before finding gift button
- Add info icon click handling when needed
- Add more comprehensive button detection with multiple selectors
- Add debug logging for page state and navigation
- Add screenshot capture on failures
- Add retry logic with proper state verification
- Fix linter errors in playwright config

The changes help diagnose and handle various UI states that can occur during gift recording, making the tests more reliable especially on Linux.
2025-02-15 07:53:48 +00:00
7458176247 refine instructions & remove duplicate info 2025-02-14 19:23:31 -07:00
Matthew Raymer
25a63080a2 feat: improve test stability and API routing
- Add proxy configuration for API requests in dev/test
- Target default endorser API server in development
- Add proxy for /api endpoints to handle CORS
- Enhance contact management test reliability
- Add comprehensive error handling and debugging
- Extract test helper functions

Breaking: None
2025-02-14 10:27:01 +00:00
Matthew Raymer
78b0c1c084 refactor(tests): enhance contact management test reliability
- Add comprehensive error handling with try-catch blocks
- Add TypeScript type annotations for Page parameters
- Add debug logging for test troubleshooting
- Add retry logic for flaky operations
- Add API request routing for port conflicts
- Add detailed JSDoc documentation
- Extract helper functions for better maintainability
- Add timeout constants for different operations
- Improve error messages with better context
- Add load state handling for network operations
2025-02-14 10:01:12 +00:00
ed2fd7b42c fix test 2025-02-04 20:12:08 -07:00
9f54286817 fix linting, add to the 10-project timeout 2025-01-29 21:36:27 -07:00
101acd2a8c fix build and auto-test issues 2025-01-20 13:06:05 -07:00
9795428ad2 fix test number check that increments 2025-01-11 16:41:26 -07:00
00fc80036a run the tests on a different port (so there's no conflict when running the development server) 2025-01-09 08:51:09 -07:00
18a3e1cc27 fix tests that were broken by contact-edit page changes 2025-01-05 19:37:49 -07:00
72cb5d89d5 bump version to 0.3.46 and fix vulnerabilities 2025-01-03 13:01:51 -07:00
e37cb2475e add test that copies contact-import JWT to clipboard and imports from it 2025-01-01 20:08:21 -07:00
8bf9640c10 add number of confirmers to certificate & show DID info when appropriate 2024-12-20 15:49:42 -07:00
5b5fbe23a5 allow to deselect the giver & refactor dialog to group giver vs recipient 2024-11-30 17:27:16 -07:00
d621828d53 add tests for gives to & from projects 2024-11-29 10:42:58 -07:00
2758af6e6e finish separation of daily reminder message, bump version to 0.3.34 2024-11-24 13:09:40 -07:00
a3b10d9a78 adjust test lines to await/expect appropriately 2024-11-07 19:07:45 -07:00
a73f0239c9 fix problem not showing user's projects on project page 2024-11-07 18:48:52 -07:00
bacf9d7de6 fix problem with "Affirm Delivery" on offer claim page, plus other look-and-feel tweaks 2024-11-07 18:17:33 -07:00
0d880d1edc add "+" to numbers if hit limit (>50), fix linting 2024-11-05 09:06:04 -07:00
f96c5892e7 add test for user-project offers on front page 2024-11-05 05:50:15 -07:00
195ba6c759 add new projects to front page 2024-11-04 19:57:39 -07:00
5f452dcf73 add tests for new activity of offers-directly-to-user 2024-11-03 20:09:54 -07:00