feat(mitarbeiter): Vorgesetzter auch fuer Personen ohne Verzeichnis (#43)
This commit was merged in pull request #43.
This commit is contained in:
@@ -70,7 +70,10 @@ async function aufbau(modus: Betriebsmodus = Betriebsmodus.INTERN) {
|
||||
abteilung: "Buchhaltung",
|
||||
titel: "Sachbearbeiterin",
|
||||
dn: DN,
|
||||
// Beides, so wie der Abgleich es schreibt: der rohe Wert des
|
||||
// Verzeichnisses und die gepflegte Zuordnung, aus der gelesen wird (#020).
|
||||
vorgesetzterExterneId: "guid-chefin",
|
||||
vorgesetzterId: chefin.id,
|
||||
herkunft: Herkunft.ABGLEICH,
|
||||
},
|
||||
});
|
||||
@@ -170,6 +173,52 @@ describe.runIf(datenbankVerfuegbar)("Werte eines Laufs", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("löst den Vorgesetzten auch für eine von Hand angelegte Person auf", async () => {
|
||||
// Der Fall aus #020: ohne Verzeichnisquelle gab es vorher kein Feld fuer die
|
||||
// Zuordnung, und {{vorgesetzter_sam}} blieb im Onboarding-Befehl leer -
|
||||
// genau dort, wo er gebraucht wird.
|
||||
const { eigene, versionId } = await aufbau();
|
||||
const chefin = await testPrisma.mitarbeiter.create({
|
||||
data: {
|
||||
kundeId: eigene.id,
|
||||
vorname: "Petra",
|
||||
nachname: "Klein",
|
||||
anzeigename: "Petra Klein",
|
||||
sam: "pklein",
|
||||
herkunft: Herkunft.MANUELL,
|
||||
},
|
||||
});
|
||||
const vonHand = await testPrisma.mitarbeiter.create({
|
||||
data: {
|
||||
kundeId: eigene.id,
|
||||
vorname: "Neu",
|
||||
nachname: "Kollege",
|
||||
anzeigename: "Neu Kollege",
|
||||
sam: "nkollege",
|
||||
herkunft: Herkunft.MANUELL,
|
||||
vorgesetzterId: chefin.id,
|
||||
},
|
||||
});
|
||||
// Keine Quelle, keine externe Kennung - der alte Leseweg haette hier
|
||||
// ausgestiegen.
|
||||
expect(vonHand.quelleId).toBeNull();
|
||||
expect(vonHand.vorgesetzterExterneId).toBeNull();
|
||||
|
||||
const laufId = await laufAnlegen({
|
||||
vorlagenVersionId: versionId,
|
||||
titel: "Onboarding Neu Kollege",
|
||||
kundeId: eigene.id,
|
||||
mitarbeiterId: vonHand.id,
|
||||
});
|
||||
|
||||
const werte = await platzhalterWerteDesLaufs({
|
||||
laufId,
|
||||
technikerName: "Ali Demir",
|
||||
jetzt: new Date("2026-10-04T10:00:00Z"),
|
||||
});
|
||||
expect(werte).toMatchObject({ vorgesetzter: "Petra Klein", vorgesetzter_sam: "pklein" });
|
||||
});
|
||||
|
||||
it("nimmt für die OU den Eltern-Container des dn, nicht die Ziel-OU", async () => {
|
||||
// Der dn sagt, wo das Konto **wirklich** liegt; die Ziel-OU der Abteilung
|
||||
// ist die Absicht fuer ein Konto, das es noch nicht gibt.
|
||||
|
||||
Reference in New Issue
Block a user