Phase 1 ops core: base blocks, feedback, canary fixes
- Add app/ekonomi/anvandare/prenumerationer/butik/feedback blocks to computeOpsSummary. - New feedback table, POST /api/feedback, GDPR erasure wiring. - Canary: only count unverified/rejected published recipes; treat verified/editorial as safe. - Add 'rejected' recipe verification status enum value. - Fix food-safety lint baseline: remove egg/cured fish from raw-protein list, relax genomstekt regex, add safe-cooking phrases to seed recipes. - Seed recipes now get verificationStatus=editorial. - Tests: ops summary blocks, feedback route, me.residual cleanup.
This commit is contained in:
@@ -240,6 +240,7 @@ describe("DELETE /v1/me — GDPR residual completeness", () => {
|
||||
creatorUserId: userId,
|
||||
creatorDisplayName: "Test",
|
||||
status: "published",
|
||||
verificationStatus: "editorial",
|
||||
nutritionPerPortion: { kcal: 0, proteinG: 0, carbsG: 0, fatG: 0, saturatedFatG: 0, fiberG: 0, sugarG: 0, saltG: 0 },
|
||||
dna: {
|
||||
cuisine: "swedish",
|
||||
@@ -337,6 +338,7 @@ describe("DELETE /v1/me — GDPR residual completeness", () => {
|
||||
user_preferences: ["user_id"],
|
||||
user_health_profiles: ["user_id"],
|
||||
user_locale_preferences: ["user_id"],
|
||||
feedback: ["user_id"],
|
||||
idempotency_keys: ["user_id"],
|
||||
push_tokens: ["user_id"],
|
||||
notifications: ["user_id"],
|
||||
@@ -422,6 +424,7 @@ describe("DELETE /v1/me — GDPR residual completeness", () => {
|
||||
["inventory_transactions", "actor_user_id"],
|
||||
["meal_boxes", "reserved_for_user_id"],
|
||||
["shopping_list_items", "added_by_user_id"],
|
||||
["feedback", "user_id"],
|
||||
];
|
||||
|
||||
for (const [table, column] of checks) {
|
||||
|
||||
Reference in New Issue
Block a user