Website-Beispiel ohne Demo-Kundennamen, Smoke-Test mit dynamischem Fremdkunden
Der Lotse-Beispielchat nannte „Wohnanlage Elbblick“ aus den Demo-Daten; die Mandantentrennungs-Prüfung für demo2 schlug deshalb an. Dazu Grammatik korrigiert. smoke-auth sucht den für den Monteur fremden Kunden jetzt über die Aufträge statt fest K-D004, weil Aufträge beim Ausprobieren der Plantafel umgeplant werden. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+12
-1
@@ -33,7 +33,18 @@ async function ids() {
|
||||
if (!d07 || !d18) throw new Error("Demo-Aufträge fehlen — `npx prisma db seed` (SEED_DEMO) ausführen.");
|
||||
const emergency = await prisma.workOrder.findFirst({ where: { tenantId: demo.id, isEmergency: true, emergencyReason: { startsWith: "Wasserrohrbruch" } }, select: { id: true, number: true } });
|
||||
const customer = await prisma.customer.findFirstOrThrow({ where: { tenantId: demo.id, customerNumber: "K-D001" } });
|
||||
const foreignCustomer = await prisma.customer.findFirstOrThrow({ where: { tenantId: demo.id, customerNumber: "K-D004" } });
|
||||
// "Fremder" Kunde für den Monteur: keiner seiner Aufträge (Team oder Einzelzuweisung) gehört dazu.
|
||||
// Dynamisch statt fest K-D004, weil Aufträge beim Ausprobieren der Plantafel umgeplant werden.
|
||||
const tech = await prisma.user.findFirstOrThrow({ where: { tenantId: demo.id, email: "monteur@demo.example" }, select: { id: true } });
|
||||
const techTeams = (await prisma.teamMember.findMany({ where: { tenantId: demo.id, userId: tech.id }, select: { teamId: true } })).map((m) => m.teamId);
|
||||
const foreignCustomer = await prisma.customer.findFirstOrThrow({
|
||||
where: {
|
||||
tenantId: demo.id,
|
||||
deletedAt: null,
|
||||
workOrders: { none: { OR: [{ assignedTeamId: { in: techTeams } }, { assignees: { some: { userId: tech.id } } }] } },
|
||||
},
|
||||
orderBy: { customerNumber: "asc" },
|
||||
});
|
||||
const site = await prisma.site.findFirstOrThrow({ where: { tenantId: demo.id, name: "Wohnanlage Elbblick – Haus A" } });
|
||||
const approved = await prisma.report.findFirstOrThrow({ where: { workOrderId: d18.id, status: "approved" } });
|
||||
const inReview = d16 ? await prisma.report.findFirst({ where: { workOrderId: d16.id } }) : null;
|
||||
|
||||
Reference in New Issue
Block a user