chore: Demo-Daten und Bildaufnahme fuer Benachrichtigungen
Die Aufnahme kann jetzt einen einzelnen Ausschnitt statt der ganzen Seite festhalten. Ein Bild der kompletten Einstellungsseite zeigt im Kapitel zu den Benachrichtigungen zu wenig vom Eigentlichen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
047a4a1c74
commit
5bbbdd5209
@@ -418,6 +418,41 @@ async function main(): Promise<void> {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// --- Benachrichtigungen ---------------------------------------------------
|
||||||
|
// Für die Bilder eingeschaltet. Eine leere Karte zeigt nichts von dem,
|
||||||
|
// was das Kapitel erklärt.
|
||||||
|
await db.benachrichtigungseinstellung.upsert({
|
||||||
|
where: { benutzerId: benutzer.id },
|
||||||
|
update: {},
|
||||||
|
create: {
|
||||||
|
benutzerId: benutzer.id,
|
||||||
|
anlaesse: 'tagesueberblick,faelligkeit,zeitblock',
|
||||||
|
perPush: true,
|
||||||
|
perMail: true,
|
||||||
|
ueberblickUm: 7 * 60,
|
||||||
|
ruheVon: 20 * 60,
|
||||||
|
ruheBis: 7 * 60,
|
||||||
|
ruheAmWochenende: false,
|
||||||
|
zeitblockVorlaufMinuten: 10,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
await db.pushGeraet.deleteMany({ where: { benutzerId: benutzer.id } })
|
||||||
|
await db.pushGeraet.create({
|
||||||
|
data: {
|
||||||
|
benutzerId: benutzer.id,
|
||||||
|
// Erfunden und unerreichbar. Die Schlüsselfelder halten sonst
|
||||||
|
// verschlüsselte Werte; hier stehen Platzhalter, weil aus der
|
||||||
|
// Demo-Instanz ohnehin nichts hinausgeht.
|
||||||
|
endpunkt: 'https://push.invalid/demo-arbeitsplatz',
|
||||||
|
p256dh: 'demo',
|
||||||
|
auth: 'demo',
|
||||||
|
bezeichnung: 'Firefox auf Windows',
|
||||||
|
erstelltAm: new Date(Date.UTC(2026, 1, 3, 8, 20)),
|
||||||
|
zuletztBenutzt: new Date(Date.UTC(2026, 2, 17, 6, 5)),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
console.log(`Demo-Daten stehen bereit. Anmeldung: ${DEMO_EMAIL}`)
|
console.log(`Demo-Daten stehen bereit. Anmeldung: ${DEMO_EMAIL}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,13 @@ type Aufnahme = {
|
|||||||
pfad: string
|
pfad: string
|
||||||
/** Wird vor der Aufnahme ausgeführt, z. B. um ein Formular aufzuklappen. */
|
/** Wird vor der Aufnahme ausgeführt, z. B. um ein Formular aufzuklappen. */
|
||||||
vorbereiten?: (seite: Page) => Promise<void>
|
vorbereiten?: (seite: Page) => Promise<void>
|
||||||
|
/**
|
||||||
|
* Nur diesen Ausschnitt aufnehmen statt der ganzen Seite.
|
||||||
|
*
|
||||||
|
* Für Themen, die auf einer gemeinsamen Seite wohnen: ein Bild der ganzen
|
||||||
|
* Einstellungsseite zeigt im Handbuchkapitel zu wenig vom Eigentlichen.
|
||||||
|
*/
|
||||||
|
ausschnitt?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
const AUFNAHMEN: Aufnahme[] = [
|
const AUFNAHMEN: Aufnahme[] = [
|
||||||
@@ -37,6 +44,11 @@ const AUFNAHMEN: Aufnahme[] = [
|
|||||||
{ name: 'bereiche', pfad: '/bereiche' },
|
{ name: 'bereiche', pfad: '/bereiche' },
|
||||||
{ name: 'kalenderkonten', pfad: '/kalenderkonten' },
|
{ name: 'kalenderkonten', pfad: '/kalenderkonten' },
|
||||||
{ name: 'einstellungen', pfad: '/einstellungen' },
|
{ name: 'einstellungen', pfad: '/einstellungen' },
|
||||||
|
{
|
||||||
|
name: 'benachrichtigungen',
|
||||||
|
pfad: '/einstellungen',
|
||||||
|
ausschnitt: '[data-bild="benachrichtigungen"]',
|
||||||
|
},
|
||||||
{ name: 'protokoll', pfad: '/verwaltung/protokoll' },
|
{ name: 'protokoll', pfad: '/verwaltung/protokoll' },
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -82,10 +94,12 @@ for (const schema of ['hell', 'dunkel'] as const) {
|
|||||||
// Der Farbschema-Umschalter und Schriften sollen fertig sein.
|
// Der Farbschema-Umschalter und Schriften sollen fertig sein.
|
||||||
await seite.waitForTimeout(300)
|
await seite.waitForTimeout(300)
|
||||||
|
|
||||||
await seite.screenshot({
|
const ziel = `${ZIEL}/${aufnahme.name}-${schema}-${geraet}.png`
|
||||||
path: `${ZIEL}/${aufnahme.name}-${schema}-${geraet}.png`,
|
if (aufnahme.ausschnitt) {
|
||||||
fullPage: true,
|
await seite.locator(aufnahme.ausschnitt).screenshot({ path: ziel })
|
||||||
})
|
} else {
|
||||||
|
await seite.screenshot({ path: ziel, fullPage: true })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await kontext.close()
|
await kontext.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user