feat(mitarbeiter): Vorgesetzter auch fuer Personen ohne Verzeichnis (#43)
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s

This commit was merged in pull request #43.
This commit is contained in:
2026-10-04 15:10:34 +00:00
parent 0fa41b9e08
commit 0060a55387
19 changed files with 683 additions and 49 deletions
+30
View File
@@ -408,6 +408,36 @@ describe.runIf(datenbankVerfuegbar && ldapDa)("Abgleich gegen das Verzeichnis",
expect(await testPrisma.mitarbeiter.count()).toBe(FIXTURE_PERSONEN + 1);
});
it("loescht eine von Hand gesetzte Vorgesetzten-Zuordnung nicht", async () => {
// `kberger` traegt im Verzeichnis keinen `manager` — mhuber und jweiss tun
// es. Wer die Zuordnung fuer kberger von Hand setzt, pflegt etwas, das das
// Verzeichnis nicht fuehrt; also hat es sie auch nicht zu loeschen (#020).
const { admin } = await grundbestand();
const quelle = await quelleFuerContainer(admin);
await abgleichAusfuehren(quelle.id, admin);
const ohneChef = await testPrisma.mitarbeiter.findFirstOrThrow({ where: { sam: "kberger" } });
const vonHand = await testPrisma.mitarbeiter.findFirstOrThrow({ where: { sam: "jweiss" } });
expect(ohneChef.vorgesetzterExterneId).toBeNull();
expect(ohneChef.vorgesetzterId).toBeNull();
await testPrisma.mitarbeiter.update({
where: { id: ohneChef.id },
data: { vorgesetzterId: vonHand.id },
});
const zweiter = await abgleichAusfuehren(quelle.id, admin);
expect(zweiter.status).toBe("ERFOLG");
const nachher = await testPrisma.mitarbeiter.findFirstOrThrow({ where: { id: ohneChef.id } });
expect(nachher.vorgesetzterId).toBe(vonHand.id);
// Gegenstueck: wo das Verzeichnis einen `manager` fuehrt, bestimmt es — und
// zwar in **beiden** Feldern, dem rohen Wert und der Zuordnung.
const mitChef = await testPrisma.mitarbeiter.findFirstOrThrow({ where: { sam: "mhuber" } });
expect(mitChef.vorgesetzterId).toBe(ohneChef.id);
expect(mitChef.vorgesetzterExterneId).toBe(ohneChef.externeId);
});
it("setzt ein per userAccountControl deaktiviertes Konto auf aktiv = false", async () => {
const { admin } = await grundbestand();
const quelle = await quelleFuerContainer(admin);