feat(cooked): „Heute gekocht" räumt Wunschliste für das Rezept
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m18s

Wenn ein Rezept heute gekocht wurde, ist der Wunsch eingelöst — raus
damit aus der Wunschliste aller Profile. Server tut das beim POST in
einem Rutsch (removeFromWishlistForAll) und meldet removed_from_wishlist
in der Response zurück. Der Client räumt daraufhin den lokalen
wishlistProfileIds-State und refresht den Badge-Zähler, damit der
Wunschliste-Button und das Header-Badge sofort passen — kein Reload nötig.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-17 22:23:08 +02:00
parent 342ea0efc8
commit d3c9bc5619
3 changed files with 23 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ import { insertRecipe } from '../../src/lib/server/recipes/repository';
import {
addToWishlist,
removeFromWishlist,
removeFromWishlistForAll,
listWishlist,
listWishlistProfileIds,
isOnMyWishlist,
@@ -129,4 +130,14 @@ describe('per-user wishlist', () => {
addToWishlist(db, r2, a.id);
expect(countWishlistRecipes(db)).toBe(2);
});
it('removeFromWishlistForAll drops every profile', () => {
const r1 = insertRecipe(db, recipe('R1'));
const a = createProfile(db, 'A');
const b = createProfile(db, 'B');
addToWishlist(db, r1, a.id);
addToWishlist(db, r1, b.id);
removeFromWishlistForAll(db, r1);
expect(listWishlistProfileIds(db, r1)).toEqual([]);
});
});