|
Some checks are pending
ship-ci / ci (push) Waiting to run
app.js exported `esc` as an implicit global back when it was a classic
script. a9fce29 made it an ES module and
|
||
|---|---|---|
| .. | ||
| audio-session-compat.spec.ts | ||
| audio-session.spec.ts | ||
| basic-load.spec.ts | ||
| capability-inspector.spec.ts | ||
| check-errors.spec.ts | ||
| default-arrangement-pin.spec.ts | ||
| exit-confirm.spec.ts | ||
| highway-3d-lefty.spec.ts | ||
| highway-perf-baseline.spec.ts | ||
| keyboard-shortcuts.spec.ts | ||
| plugin-globals-contract.spec.ts | ||
| progress-shop.spec.ts | ||
| README.md | ||
| resume-session.spec.ts | ||
| settings-tabbed.spec.ts | ||
| v3-grid-virtualization.spec.ts | ||
| v3-section-map-leftmost-click.spec.ts | ||
| v3-tree-select.spec.ts | ||
| wake-lock.spec.ts | ||
Browser Tests
This directory contains Playwright browser tests for FeedBack keyboard shortcuts.
Prerequisites
-
FeedBack web server: Tests need the server reachable at
http://localhost:8000. Playwright auto-starts it viawebServer.commandinplaywright.config.ts, so manual startup is optional. Start it manually if you want to debug the server, run tests outside Playwright, or skip the per-run boot delay:LIBRARY_PATH=/path/to/your/library docker compose up -dPlaywright reuses an already-running server locally (
reuseExistingServer: true). -
Node.js installed: Required for running Playwright tests
node --version # Should be v18 or higher
Installation
Install dependencies:
npm install
Install Playwright browsers:
npm run install:playwright
Running Tests
Run all tests:
npm test
Run tests in headed mode (watch the browser):
npm run test:headed
Debug tests with interactive inspector:
npm run test:debug
Test Files
basic-load.spec.ts- Basic app load and shortcut registry availabilitycheck-errors.spec.ts- Check for console errorskeyboard-shortcuts.spec.ts- Comprehensive keyboard shortcut tests
Writing Tests
Tests use Playwright's test API. Example:
import { test, expect } from '@playwright/test';
test('my test', async ({ page }) => {
await page.goto('/');
await page.waitForSelector('.screen.active');
// Interact with the page
await page.keyboard.press('?');
// Assert
await expect(page.locator('#shortcuts-modal')).toBeVisible();
});
Troubleshooting
Container won't start
If the Docker container exits immediately, check the logs:
docker compose logs
Common issue: Missing dependencies. Rebuild the container:
docker compose build --no-cache
docker compose up -d
Tests timeout
Increase timeout in playwright.config.ts if needed.
LIBRARY_PATH not set
Make sure to set the LIBRARY_PATH environment variable:
LIBRARY_PATH=~/feedBack-library docker compose up -d
CI/CD
In CI environments, Playwright will:
- Run tests in headless mode
- Retry failed tests up to 2 times
- Generate HTML report with screenshots/videos on failure