Files
cv-site/tests/mjs
juanatsap da483ae9f1 fix: Differentiate zoom and info button colors, fix button visibility in responsive mode
Issues fixed:
1. Zoom button now uses purple color (rgba(155, 89, 182, 0.7)) instead of blue
2. Info button keeps blue color (rgba(52, 152, 219, 0.7))
3. Both buttons now show distinct colors in default state, not just on hover
4. Device detection now considers viewport width, not just user agent
5. Buttons no longer hide in responsive mode at desktop viewport sizes

Changes:
- Updated zoom-toggle-btn to use purple background color
- Updated info-button to use blue background color (explicit, not var)
- Modified device-detection.js to check viewport width (≤900px) in addition to UA
- Added resize listener to update device class dynamically
- Created test (67-button-colors-and-visibility-test.mjs) to verify fixes

Testing:
- Desktop (1278px): All buttons visible with distinct colors
- Mobile (375px): Zoom/shortcuts hidden, core buttons visible
- Device detection now viewport-aware (prevents hiding at desktop sizes)
2025-11-25 06:41:56 +00:00
..

CV Project Test Suite (Active Tests)

28 comprehensive tests covering all functionality from UI interactions to PDF generation.

Quick Start

# Run all tests with master test runner
bun tests/run-all.mjs

# Run individual test
bun tests/mjs/0-zoom.test.mjs
bun tests/mjs/28-references-pdf-download.test.mjs

Core Functionality Tests (0-14)

0-zoom.test.mjs

Zoom control functionality - slider, toggle, persistence

1-toggles.test.mjs

Length/Icon/Theme toggles with screenshot verification

2-keyboard-shortcuts.test.mjs

L/I/V/? keyboard shortcuts

3-hyperscript.test.mjs

Hyperscript parsing and function definitions

4-htmx.test.mjs

HTMX library and request/response cycle

5-language.test.mjs

Bilingual support (EN/ES) switching

6-modals.test.mjs

Info, shortcuts, and PDF modal dialogs

7-mobile-responsive.test.mjs

Mobile viewport and touch interactions

8-hover-sync.test.mjs

Hover state synchronization across UI

9-hyperscript-def-limit.test.mjs

Hyperscript 0.9.14+ def limit validation

10-zoom-persistence.test.mjs

Zoom level localStorage persistence

11-zoom-ui-exclusion.test.mjs

UI elements excluded from zoom

12-skeleton-language-transitions.test.mjs

Skeleton loaders for language transitions (13 sections)

13-color-theme-switcher.test.mjs

Dynamic color theme switcher (auto/light/dark)

14-button-positioning.test.mjs

Responsive button positioning

Advanced Feature Tests (15-28)

14-pdf-modal.test.mjs

PDF download modal with thumbnail selection

15-icon-toggle-debug.test.mjs

Icon toggle debugging and validation

22-theme-consistency.test.mjs

Theme consistency across reloads

23-dark-theme-borders.test.mjs

Dark theme border colors

24-course-inline-icons.test.mjs

Course section inline icon sizes

24-pdf-download-params.test.mjs

PDF download URL parameters

25-inline-icons-comprehensive.test.mjs

Comprehensive inline icon testing

26-course-list-icons.test.mjs

Course list icon rendering

27-course-icons-final.test.mjs

Final course icon validation

28-references-pdf-download.test.mjs

References section PDF download button

29-pdf-toast-notifications.test.mjs

Toast notification system for PDF downloads

  • Toast elements exist in DOM
  • JavaScript functions available (showPDFToast, hidePDFToast)
  • Manual toast trigger and auto-hide
  • PDF modal integration - Scenario A (Stay in modal)
  • PDF modal integration - Scenario B (Close modal early, toast appears)
  • Toast content updates (preparing → success)
  • Progress bar animation
  • CSS animations defined (toastSlideIn, toastLifecycle, progressShrink)

Migration Tests

test-preference-migration.test.mjs

LocalStorage preference migration (extended→long, true/false→show/hide)

verify-migration.test.mjs

Migration verification and validation

Test Requirements

  • Server: Running on http://localhost:1999
  • Browser: Playwright Chromium (headed mode)
  • Runtime: Bun (#!/usr/bin/env bun)
  • Exit: Ctrl+C after manual verification

Test Output

All tests provide:

  • Clear pass/fail indicators
  • 📊 Summary of test results
  • Detailed error messages with file:line references
  • 🎉 Success confirmation
  • 💡 Browser stays open for manual inspection

Screenshots

Tests save screenshots to tests/screenshots/:

  • Before/after comparison for visual verification
  • Dark theme validation
  • Icon toggle validation

Running Tests

# All tests
bun tests/run-all.mjs

# Individual test
bun tests/mjs/{number}-{feature}.test.mjs

# Example
bun tests/mjs/28-references-pdf-download.test.mjs

Last Updated: 2025-11-20 Test Count: 28 active tests Coverage: Complete functionality coverage including toast notifications Status: Production specification