mirror of
https://github.com/Since-3/Kuma.git
synced 2026-10-12 20:51:18 +00:00
see comments
This commit is contained in:
parent
94e632681e
commit
baf1a9eb5d
2 changed files with 18 additions and 4 deletions
|
|
@ -253,7 +253,17 @@ export async function publishDraftCourses(courseIds: string[]) {
|
|||
// zuschreiben und an den Client melden. status: "draft" im where sorgt dafür,
|
||||
// dass ein zwischenzeitlich abgesagter Kurs nicht doch noch live geht.
|
||||
const updated = await prisma.course.updateManyAndReturn({
|
||||
where: { id: { in: publishableIds }, createdBy: auth.managerId, status: "draft" },
|
||||
where: {
|
||||
id: { in: publishableIds },
|
||||
createdBy: auth.managerId,
|
||||
status: "draft",
|
||||
// Muss dieselbe Bedingung tragen wie die Auswahl-Abfrage oben:
|
||||
// updateCourse kann einen Entwurf parallel in einen Dauerauftrag
|
||||
// umwandeln (isStandingOrder: true bei unverändertem status "draft").
|
||||
// Ohne dieses Prädikat würde das Template hier veröffentlicht — und
|
||||
// wäre live, ohne je als Termin in der Kursliste zu erscheinen.
|
||||
isStandingOrder: false,
|
||||
},
|
||||
data: { status: "published" },
|
||||
select: { id: true },
|
||||
});
|
||||
|
|
|
|||
|
|
@ -259,19 +259,23 @@ describe("publishDraftCourses", () => {
|
|||
expect(result.vanished).toBe(1);
|
||||
});
|
||||
|
||||
it("veröffentlicht nur Kurse, die noch den Status draft haben", async () => {
|
||||
it("schreibt nur eigene Entwurf-Einzelkurse, nie Dauerauftrag-Templates", async () => {
|
||||
mockGetUserData.mockResolvedValueOnce(MANAGER as never);
|
||||
findMany.mockResolvedValueOnce([completeDraft()] as never);
|
||||
mockUpdateReturning(["c1"]);
|
||||
|
||||
await publishDraftCourses(["c1"]);
|
||||
|
||||
// Ohne status: "draft" im where könnte ein zwischenzeitlich abgesagter
|
||||
// Kurs wieder live gehen.
|
||||
// Das Update muss dieselben Bedingungen tragen wie die Auswahl-Abfrage:
|
||||
// ohne status "draft" könnte ein zwischenzeitlich abgesagter Kurs wieder
|
||||
// live gehen, ohne isStandingOrder: false ein parallel konvertiertes
|
||||
// Dauerauftrag-Template veröffentlicht werden, das nie in der Kursliste
|
||||
// erscheint.
|
||||
expect(updateManyAndReturn.mock.calls[0][0]?.where).toEqual({
|
||||
id: { in: ["c1"] },
|
||||
createdBy: "mgr-1",
|
||||
status: "draft",
|
||||
isStandingOrder: false,
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue