diff --git a/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteService.java b/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteService.java index 571564e6..9cb957a2 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteService.java @@ -134,6 +134,7 @@ public class GeschichteService { .title(dto.getTitle().trim()) .body(sanitize(dto.getBody())) .status(GeschichteStatus.DRAFT) + .type(dto.getType() != null ? dto.getType() : GeschichteType.STORY) .author(currentUser()) .persons(resolvePersons(dto.getPersonIds())) .build(); diff --git a/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteUpdateDTO.java b/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteUpdateDTO.java index 969ca6dd..c2b78597 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteUpdateDTO.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/geschichte/GeschichteUpdateDTO.java @@ -15,5 +15,6 @@ public class GeschichteUpdateDTO { private String title; private String body; private GeschichteStatus status; + private GeschichteType type; private List personIds; } diff --git a/backend/src/test/java/org/raddatz/familienarchiv/geschichte/GeschichteServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/geschichte/GeschichteServiceTest.java index 06b00490..20c65e1b 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/geschichte/GeschichteServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/geschichte/GeschichteServiceTest.java @@ -389,6 +389,37 @@ class GeschichteServiceTest { .isEqualTo(ErrorCode.VALIDATION_ERROR); } + @Test + void create_preserves_JOURNEY_type_from_dto() { + authenticateAs(writer, Permission.BLOG_WRITE); + when(userService.findByEmail(writer.getEmail())).thenReturn(writer); + when(geschichteRepository.save(any(Geschichte.class))) + .thenAnswer(inv -> inv.getArgument(0)); + + GeschichteUpdateDTO dto = new GeschichteUpdateDTO(); + dto.setTitle("My Journey"); + dto.setType(GeschichteType.JOURNEY); + + Geschichte saved = geschichteService.create(dto); + + assertThat(saved.getType()).isEqualTo(GeschichteType.JOURNEY); + } + + @Test + void create_defaults_to_STORY_when_type_is_null() { + authenticateAs(writer, Permission.BLOG_WRITE); + when(userService.findByEmail(writer.getEmail())).thenReturn(writer); + when(geschichteRepository.save(any(Geschichte.class))) + .thenAnswer(inv -> inv.getArgument(0)); + + GeschichteUpdateDTO dto = new GeschichteUpdateDTO(); + dto.setTitle("My Story"); + + Geschichte saved = geschichteService.create(dto); + + assertThat(saved.getType()).isEqualTo(GeschichteType.STORY); + } + // ─── update ────────────────────────────────────────────────────────────── @Test