test(recipes): verify null preview is stored when compressor returns null

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-10 09:37:24 +02:00
parent ebaf42d83d
commit 9df6d6f0c6

View File

@@ -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));
}
}