Number entries on publish, delete media, read the cover

- drafts stay unnumbered, the number is handed out when an entry goes live
- DELETE /api/v1/media/:id and a delete control in the media library
- cover_media_id in the draft read, coverMediaId and coverUrl in the archive read
This commit is contained in:
Matthias G
2026-08-01 12:25:01 +02:00
parent afaa323848
commit 2fd71fd406
31 changed files with 2286 additions and 76 deletions
+6 -6
View File
@@ -29,7 +29,7 @@ describe('performSaveEntry legt an', () => {
it('speichert Beitrag, Blöcke und Autor', async () => {
const { entry } = await ready()
expect(entry.number).toBe(1)
expect(entry.number).toBeNull()
expect(entry.slug).toBe('regel-engine')
expect(entry.status).toBe('draft')
@@ -91,7 +91,7 @@ describe('performSaveEntry ändert', () => {
expect(state).toMatchObject({ ok: true })
expect(state.ok && state.entry.slug).toBe('regel-engine')
expect(state.ok && state.entry.number).toBe(1)
expect(state.ok && state.entry.number).toBeNull()
})
it('schreibt Blöcke in neuer Reihenfolge', async () => {
@@ -120,7 +120,7 @@ describe('performSaveEntry ändert', () => {
expect(state).toMatchObject({ ok: false, error: 'slugTaken' })
})
it('lässt das Projekt wechseln und nummeriert im Zielprojekt neu', async () => {
it('lässt das Projekt wechseln, ohne dem Entwurf eine Nummer zu geben', async () => {
const brand = await makeBrand()
const trakk = await makeProject(brand.id, 'trakk', 'Trakk')
const orbit = await makeProject(brand.id, 'orbit', 'Orbit')
@@ -136,7 +136,7 @@ describe('performSaveEntry ändert', () => {
const saved = await findEntry(created.ok ? created.entry.id : '')
expect(saved?.projectId).toBe(orbit.id)
expect(saved?.number).toBe(1)
expect(saved?.number).toBeNull()
})
})
@@ -279,7 +279,7 @@ describe('Veröffentlichungsprüfungen', () => {
})
describe('performSaveEntry wechselt das Projekt', () => {
it('vergibt im Zielprojekt die nächste freie Nummer', async () => {
it('lässt die Nummer des Entwurfs im Zielprojekt offen', async () => {
const brand = await makeBrand()
const from = await makeProject(brand.id, 'quelle', 'Quelle')
const to = await makeProject(brand.id, 'ziel', 'Ziel')
@@ -303,7 +303,7 @@ describe('performSaveEntry wechselt das Projekt', () => {
const saved = await findEntry(created.entry.id)
expect(saved?.projectId).toBe(to.id)
expect(moved.entry.number).toBe(2)
expect(moved.entry.number).toBeNull()
})
it('macht den Slug im Zielprojekt eindeutig', async () => {