import { ausVorlage } from '../../server/services/termine/vorlagen.js' import { SCHRITTE, leerFragebogen } from '../../server/services/termine/fragebogen.js' /** * Testhelfer fuer die Bestellpruefung des Terminplaners (TP2, Task C2): ein Entwurf, der alle Punkte des Gates erfuellt, * und das termineConfig-Dokument dazu. Erst nach useTestEnv() dynamisch importieren, wenn der Test config.js mit * Testwerten braucht (die Vorlagen ziehen config.js mit). */ const BETRIEB = { name: 'Salon Muster', email: 'salon@example.invalid', telefon: '06301 12345', adresse: 'Hauptstraße 1, 67655 Kaiserslautern', impressumUrl: 'https://salon.example.invalid/impressum', datenschutzUrl: 'https://salon.example.invalid/datenschutz', bundesland: 'RP', } /** * Ein bestellbarer Entwurf: Vorlage `salon` mit Telefon, Anschrift, Impressum und Datenschutz, alle Schritte bestaetigt, * Bundesland gewaehlt, Preise geprueft, Einbau `inline`, Branche `salon`. Bei jedem Aufruf neue Objekte (neue IDs). * Mit `abo: { ok: true }` ergibt bestellpruefung() []; Tests aendern einzelne Felder, um genau einen Punkt zu oeffnen. * @param {{ now?: Date }} [optionen] * @returns {{ einstellung: object, fragebogen: object }} */ export function bestellbarerStand({ now = new Date() } = {}) { const einstellung = ausVorlage('salon', BETRIEB, now) const leer = leerFragebogen() const fragebogen = { ...leer, branche: 'salon', bestaetigt: [...SCHRITTE], bundeslandGewaehlt: true, preiseGeprueft: true, einbau: { ...leer.einbau, modus: 'inline' }, } return { einstellung, fragebogen } } /** * termineConfig-Dokument (Dokument-ID = ID des portalFeatures-Dokuments) fuer aw.seed('termineConfig', …): Einstellung und * Fragebogen als JSON-Text wie in Produktion. Ohne `stand` der bestellbare Stand; ein Feld, das null/undefined ist, fehlt im Dokument. * @param {string} featureId * @param {{ customerId: string, projectId: string, stand?: { einstellung?: object|null, fragebogen?: object|null } }} optionen */ export function entwurfDoc(featureId, { customerId, projectId, stand = bestellbarerStand() }) { const doc = { $id: featureId, customerId, projectId, einstellung: JSON.stringify(stand.einstellung ?? {}), version: 1, updatedAt: '2026-10-04T10:00:00.000Z', updatedBy: 'test', } if (stand.fragebogen !== null && stand.fragebogen !== undefined) doc.fragebogen = JSON.stringify(stand.fragebogen) return doc }