feat(vorlagen): Editor, Liste und Versionsgeschichte (#24)
This commit was merged in pull request #24.
This commit is contained in:
@@ -3,6 +3,7 @@ import { Betriebsmodus } from "@/generated/prisma/enums";
|
||||
import {
|
||||
versionMitAufbau,
|
||||
versionsHistorie,
|
||||
vorlageHolen,
|
||||
vorlagenFilterwerte,
|
||||
vorlagenListe,
|
||||
} from "@/server/queries/vorlagen";
|
||||
@@ -153,4 +154,42 @@ describe.runIf(datenbankVerfuegbar)("Mandantensicht auf Vorlagen", () => {
|
||||
expect(await vorlagenListe(techniker)).toHaveLength(3);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Einzelne Vorlage", () => {
|
||||
it("gibt eine fremde Vorlage nicht heraus", async () => {
|
||||
// Die Vorlagenseite haengt allein an dieser Funktion. Gaebe sie die Zeile
|
||||
// heraus, staenden Name, Beschreibung und Versionsgeschichte offen – die
|
||||
// Kennung steht in jedem Link, den jemand weitergibt.
|
||||
const { techniker, fremde, meine, globale } = await aufbau();
|
||||
expect(await vorlageHolen(fremde.vorlage.id, techniker)).toBeUndefined();
|
||||
expect(await vorlageHolen(meine.vorlage.id, techniker)).toBeDefined();
|
||||
expect(await vorlageHolen(globale.vorlage.id, techniker)).toBeDefined();
|
||||
});
|
||||
|
||||
it("gibt einem Administrator auch eine fremde heraus", async () => {
|
||||
const { admin, fremde } = await aufbau();
|
||||
expect(await vorlageHolen(fremde.vorlage.id, admin)).toBeDefined();
|
||||
});
|
||||
|
||||
it("liefert dieselben Felder wie die Liste", async () => {
|
||||
// Zwei Lesemodelle fuer dieselbe Zeile laufen auseinander; deshalb bauen
|
||||
// beide aus derselben Auswahl. Der Test haelt das fest.
|
||||
const { techniker, meine } = await aufbau();
|
||||
const ausListe = (await vorlagenListe(techniker, { auchArchivierte: true })).find(
|
||||
(zeile) => zeile.id === meine.vorlage.id,
|
||||
);
|
||||
expect(await vorlageHolen(meine.vorlage.id, techniker)).toEqual(ausListe);
|
||||
});
|
||||
|
||||
it("findet auch eine archivierte Vorlage", async () => {
|
||||
// Die Seite muss sie zeigen koennen, sonst liesse sich nichts freigeben.
|
||||
const { techniker, meine } = await aufbau();
|
||||
await testPrisma.vorlage.update({
|
||||
where: { id: meine.vorlage.id },
|
||||
data: { archiviert: true },
|
||||
});
|
||||
const zeile = await vorlageHolen(meine.vorlage.id, techniker);
|
||||
expect(zeile?.archiviert).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user