- Books: Reader sprang beim Scroll+sofortigem Tap auf die alte Position zurück (Anker-Tracking lief nur alle 2s über den Save-Debounce, jetzt eigener 150ms-Tracker unabhängig davon) - Books: +/- Buttons neben den Reader-Slidern (Font/Zeilenhöhe/Breite) - Books: Sicherheitsnetz-Toast bei plötzlichen großen Scroll-Sprüngen (Fling, aus Versehen 'G' gedrückt) mit Zurückspringen-Option; bewusste Sprünge (TOC, Lesezeichen, Fortschritts-Eingabe, Suche) lösen ihn nicht aus - Radio: Donation-Hinweis kam bei vielen Lieblingssendern gefühlt ständig — jetzt zusätzlich auf ~1-von-10 Plays gedrosselt - UI: farbige Emoji-Icons (🔍📻⏪⏩💡 etc.) durch monochrome Unicode-Symbole ersetzt, die nicht mehr je nach OS/Browser-Font unterschiedlich aussehen; Lesezeichen-Icon war zudem fast identisch zum TOC-Icon - UI: native alert()/confirm()/prompt() durch eigenes Modal-System ersetzt - UI: Hash-basiertes URL-Routing für Tabs (#radio/saved, #podcasts/feeds, …) — Browser-Zurück/Vor und Deep-Links funktionieren jetzt - Tests: Playwright e2e-Setup gegen isolierte Test-DB (DIORA_DB_NAME), Smoke- und Auth-Specs Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
// Playwright config for diora's e2e smoke tests.
|
|
//
|
|
// Tests run against a real `manage.py runserver` instance backed by its own
|
|
// throwaway SQLite database (DIORA_DB_NAME), so they never touch the dev
|
|
// database at data/db.sqlite3. See e2e/global-setup.js for how that DB is
|
|
// migrated and seeded with a test user.
|
|
const path = require('path');
|
|
const { defineConfig, devices } = require('@playwright/test');
|
|
const { BASE_URL, SERVER_ENV } = require('./e2e/env');
|
|
|
|
module.exports = defineConfig({
|
|
testDir: './e2e',
|
|
fullyParallel: false,
|
|
workers: 1,
|
|
reporter: [['list']],
|
|
timeout: 30_000,
|
|
use: {
|
|
baseURL: BASE_URL,
|
|
trace: 'retain-on-failure',
|
|
screenshot: 'only-on-failure',
|
|
},
|
|
projects: [
|
|
{
|
|
name: 'chromium',
|
|
use: { ...devices['Desktop Chrome'] },
|
|
},
|
|
],
|
|
globalSetup: require.resolve('./e2e/global-setup.js'),
|
|
webServer: {
|
|
command: 'python3 manage.py runserver 127.0.0.1:8000 --noreload',
|
|
url: BASE_URL + '/accounts/login/',
|
|
reuseExistingServer: !process.env.CI,
|
|
timeout: 30_000,
|
|
cwd: path.join(__dirname),
|
|
env: SERVER_ENV,
|
|
},
|
|
});
|