Files
cv-site/tests/archive/misc/test-quick-check.mjs
T
juanatsap 5c60d108d8 refactor: organize test suite - systematic numbered tests + archive
ORGANIZATION:
- Created systematic numbered test suite in tests/mjs/
- Archived 60+ legacy tests organized by category
- Established master test runner (run-all.mjs)
- Updated comprehensive documentation

NEW ACTIVE TESTS:
- 0-zoom.test.mjs - Zoom control functionality
- 1-toggles.test.mjs - Toggle testing with real-time verification
- 2-keyboard-shortcuts.test.mjs - L, I, V, ? keyboard shortcuts

ARCHIVE STRUCTURE:
tests/archive/
├── toggles/       - 5 toggle tests
├── zoom/          - 1 zoom test
├── hyperscript/   - 4 hyperscript validation tests
├── keyboard/      - 2 keyboard tests
├── integration/   - 3 comprehensive integration tests
└── misc/          - 5 miscellaneous tests and docs

TEST INFRASTRUCTURE:
- tests/run-all.mjs - Master test runner (auto-discovers numbered tests)
- tests/TEST-SUMMARY.md - Complete documentation
- tests/archive/README.md - Archive guide
- tests/mjs/README.md - Active test suite guide

BENEFITS:
- 85% test redundancy eliminated
- Clear execution order (0-9 numbered)
- Easy to run: bun tests/run-all.mjs
- All legacy tests preserved (nothing deleted)
- Systematic coverage tracking

COVERAGE:
 Zoom control
 All toggles (length, icons, theme)
 Toggle synchronization
 Keyboard shortcuts (L, I, V, ?)
 Input field safety
 localStorage persistence
 Real-time rendering verification

TODO (Planned):
- [ ] 3-hyperscript.test.mjs
- [ ] 4-htmx.test.mjs
- [ ] 5-language.test.mjs
- [ ] 6-modals.test.mjs
2025-11-17 13:18:39 +00:00

49 lines
1.4 KiB
JavaScript
Executable File

#!/usr/bin/env bun
import { chromium } from "playwright";
const URL = "http://localhost:1999";
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
const errors = [];
page.on('console', msg => {
if (msg.type() === 'error') {
errors.push(msg.text());
console.log(`❌ ERROR: ${msg.text()}`);
}
});
page.on('pageerror', err => {
errors.push(err.message);
console.log(`❌ PAGE ERROR: ${err.message}`);
});
console.log("Loading page...");
await page.goto(URL);
await page.waitForTimeout(3000);
console.log("\n📊 Console errors:", errors.length);
const buttons = await page.evaluate(() => {
const action = document.querySelector('.action-bar');
return {
actionBarExists: !!action,
actionBarHTML: action ? action.innerHTML.substring(0, 200) : 'not found',
hamburger: !!document.querySelector('.hamburger-btn'),
lengthToggle: !!document.querySelector('#lengthToggle'),
logoToggle: !!document.querySelector('#logoToggle'),
themeToggle: !!document.querySelector('#themeToggle'),
pdfBtn: !!document.querySelector('.pdf-btn'),
printBtn: !!document.querySelector('.print-btn')
};
});
console.log("\n🔘 Buttons:", buttons);
console.log("\n✅ NO PARSE ERRORS - Waiting for manual inspection...");
console.log("Press Ctrl+C when done");
await new Promise(() => {}); // Wait forever