From 9df6d6f0c6ecdd3205635df0007afdee4704cee2 Mon Sep 17 00:00:00 2001 From: Marcel Raddatz Date: Fri, 10 Apr 2026 09:37:24 +0200 Subject: [PATCH] test(recipes): verify null preview is stored when compressor returns null Co-Authored-By: Claude Sonnet 4.6 --- .../recipeapp/recipe/RecipeServiceTest.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/backend/src/test/java/com/recipeapp/recipe/RecipeServiceTest.java b/backend/src/test/java/com/recipeapp/recipe/RecipeServiceTest.java index 792be7f..4e60b79 100644 --- a/backend/src/test/java/com/recipeapp/recipe/RecipeServiceTest.java +++ b/backend/src/test/java/com/recipeapp/recipe/RecipeServiceTest.java @@ -604,4 +604,30 @@ class RecipeServiceTest { assertThat(result).isEmpty(); } + + @Test + void createRecipeShouldStoreNullPreviewWhenCompressorReturnsNull() { + var household = testHousehold(); + when(householdRepository.findById(HOUSEHOLD_ID)).thenReturn(Optional.of(household)); + when(imageCompressor.compressToPreview(any())).thenReturn(null); + when(recipeRepository.save(any(Recipe.class))).thenAnswer(i -> { + Recipe r = i.getArgument(0); + try { + var field = Recipe.class.getDeclaredField("id"); + field.setAccessible(true); + field.set(r, UUID.randomUUID()); + } catch (Exception e) { throw new RuntimeException(e); } + return r; + }); + + var request = new RecipeCreateRequest( + "Soup", null, null, "easy", "data:image/jpeg;base64,abc", + List.of(), List.of(), List.of()); + + RecipeDetailResponse result = recipeService.createRecipe(HOUSEHOLD_ID, request); + + assertThat(result.id()).isNotNull(); + // verify the recipe was saved without a preview (compressor returned null) + verify(recipeRepository).save(argThat(r -> r.getHeroImagePreview() == null)); + } }