949c9a0351
- Move docs/ contents to doc/ with proper numbering: - CONTACT-FORM-QUICKSTART.md → 17-CONTACT-FORM.md - SECURITY-AUDIT-REPORT.md → 18-SECURITY-AUDIT.md - SECURITY.md → 19-SECURITY-IMPLEMENTATION.md - Delete duplicate/redundant files from docs/: - CMD-K-COMMAND-BAR.md (duplicate of 16-CMD-K-API.md) - CONTACT_FORM_IMPLEMENTATION.md (overlaps with quickstart) - SECURITY-IMPLEMENTATION-SUMMARY.md (summary of audit) - Update doc/README.md with new document references - Update test counts to 39 test files across all READMEs - Update all "Last Updated" dates to 2025-12-01 - Add new API endpoints documentation (text, cmd-k, contact, toggles) - Update PROJECT-MEMORY.md with new features and correct paths
156 lines
3.8 KiB
Markdown
156 lines
3.8 KiB
Markdown
# CV Project Test Suite (Active Tests)
|
|
|
|
**39 comprehensive test files** covering all functionality from UI interactions to PDF generation, CMD+K command palette, and contact form.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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-12-01
|
|
**Test Count**: 39 test files
|
|
**Coverage**: Complete functionality coverage including toast notifications, CMD+K command palette, and contact form
|
|
**Status**: Production specification
|