fix(hogtider): alla svenska hogtider visar relevanta recept

Ratta slug-bugg: recept-taggen "grillsäsong" matchade aldrig event-sluggen
"grillsasong" (ASCII) sa grillsäsong-knappen visade inget. Nu ratt.

15 nya hogtidsrecept taggade med exakt SE-event-slug: rodbetssallad, rodkal,
senapssill, stekt prinskorv, kokta kraftor med krondill, aioli, ostbricka,
farskpotatis med dill, agghalvor med rakror, rakcocktail, grillspett med
halloumi, grillad kycklingfile, pastasallad i matladan, tillbehor till
surstromming, kryddig kyckling med ris.

Omtaggar befintliga recept till ratt hogtid: vasterbottensostpaj +kraftskiva,
grekisk-sallad +grillsasong, chili/spaghetti +skolstart, chokladtarta
+alla-hjartans-dag, tomatsoppa +halloween, korvgratang +oktoberfest,
halloumiburgare +valborg.

Alla 14 SE-hogtider har nu minst ett korrekt taggat recept. Naring och
enheter ar berakningsbara for alla 74 extrarecept (invarianttest gront,
repo-typecheck gront).
This commit is contained in:
Claude
2026-08-19 14:39:32 +00:00
parent de279a7c01
commit d267effd6c
3 changed files with 625 additions and 10 deletions
@@ -2148,7 +2148,7 @@ export const EXTRA_RECIPES: SeedRecipe[] = [
mealPrepFriendly: false, mealPrepFriendly: false,
freezerFriendly: true, freezerFriendly: true,
peakSeasons: [], peakSeasons: [],
holidayTags: ["fika"], holidayTags: ["fika", "alla-hjartans-dag"],
variantType: "standard", variantType: "standard",
dnaCarb: "flour_wheat", dnaCarb: "flour_wheat",
dnaVegetables: [], dnaVegetables: [],
@@ -2429,7 +2429,7 @@ export const EXTRA_RECIPES: SeedRecipe[] = [
mealPrepFriendly: true, mealPrepFriendly: true,
freezerFriendly: false, freezerFriendly: false,
peakSeasons: [], peakSeasons: [],
holidayTags: [], holidayTags: ["oktoberfest"],
variantType: "standard", variantType: "standard",
dnaProtein: "falukorv", dnaProtein: "falukorv",
dnaVegetables: ["potato"], dnaVegetables: ["potato"],
@@ -2459,4 +2459,619 @@ export const EXTRA_RECIPES: SeedRecipe[] = [
}, },
], ],
}, },
// ---------------------------------------------------------------------------
// HÖGTIDER (spec §28) recept taggade med exakt högtids-slug (SE-marknad) så
// "Vad ska vi äta?"-högtidsknapparna alltid visar relevant mat. Slugs måste
// matcha seasonEvents.ts exakt: jul, midsommar, påsk, nyår, kraftskiva,
// grillsasong, skolstart, surstromming (ASCII inte "grillsäsong"!).
// ---------------------------------------------------------------------------
{
slug: "rodbetssallad",
titleSv: "Klassisk rödbetssallad",
descriptionSv:
"Krämig rödbetssallad med äpple det självklara röda inslaget på jul- och påskbordet, gott till skinka och sill.",
cuisine: "swedish",
mealTypes: ["buffet", "starter"],
tags: ["vegetarian", "gluten_free"],
methods: ["no_cook"],
equipment: [],
difficulty: "beginner",
prepMin: 15,
cookMin: 0,
portions: 8,
spiceLevel: 0,
mealPrepFriendly: true,
freezerFriendly: false,
peakSeasons: ["winter"],
holidayTags: ["jul", "påsk", "nyår"],
variantType: "standard",
dnaVegetables: ["beetroot", "apple"],
dnaFlavor: ["sweet", "sour", "creamy"],
verificationStatus: "editorial",
ingredients: [
{ ing: "beetroot", nameSv: "Inlagda rödbetor", qty: 300, unit: "GRAM", optional: false },
{ ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false },
{ ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 2, unit: "DECILITER", optional: false },
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 100, unit: "GRAM", optional: false },
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
{ ing: "black_pepper", nameSv: "Svartpeppar", qty: 1, unit: "MILLILITER", optional: true },
],
steps: [
{ text: "Låt rödbetorna rinna av ordentligt i ett durkslag och tärna dem smått." },
{ text: "Kärna ur och tärna äpplet lika smått som rödbetorna." },
{ text: "Rör ihop crème fraiche och majonnäs och vänd försiktigt ner rödbetor och äpple." },
{
text: "Smaka av med salt och peppar. Låt gärna stå kallt en timme så smakerna sätter sig.",
},
],
},
{
slug: "rodkal",
titleSv: "Långkokt rödkål",
descriptionSv:
"Mjuk, sötsyrlig rödkål som får puttra med äpple och lite balsamvinäger ett givet tillbehör på julbordet.",
cuisine: "swedish",
mealTypes: ["buffet"],
tags: ["vegetarian", "gluten_free", "budget"],
methods: ["stovetop"],
equipment: ["stove"],
difficulty: "easy",
prepMin: 15,
cookMin: 45,
portions: 8,
spiceLevel: 0,
mealPrepFriendly: true,
freezerFriendly: true,
peakSeasons: ["winter"],
holidayTags: ["jul", "nyår"],
variantType: "standard",
dnaVegetables: ["red_cabbage", "apple"],
dnaFlavor: ["sweet", "sour", "buttery"],
verificationStatus: "editorial",
ingredients: [
{ ing: "red_cabbage", nameSv: "Rödkål", qty: 600, unit: "GRAM", optional: false },
{ ing: "apple", nameSv: "Äpple", qty: 1, unit: "COUNT", optional: false },
{ ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM", optional: false },
{ ing: "sugar", nameSv: "Socker", qty: 30, unit: "GRAM", optional: false },
{ ing: "balsamic_vinegar", nameSv: "Balsamvinäger", qty: 40, unit: "GRAM", optional: false },
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
],
steps: [
{ text: "Strimla rödkålen fint och riv eller tärna äpplet." },
{ text: "Smält smöret i en vid gryta och lägg i rödkål och äpple. Låt fräsa några minuter." },
{ text: "Tillsätt socker, balsamvinäger och salt samt ett par matskedar vatten." },
{
text: "Lägg på lock och låt sjuda på svag värme tills kålen är mjuk och blank, cirka 40 minuter. Rör om då och då.",
},
],
},
{
slug: "senapssill",
titleSv: "Senapssill",
descriptionSv:
"Inlagd sill i len senapssås med dill en av de självklara sillsorterna till jul, påsk och midsommar.",
cuisine: "swedish",
mealTypes: ["buffet", "starter"],
tags: ["gluten_free", "high_protein"],
methods: ["no_cook"],
equipment: [],
difficulty: "beginner",
prepMin: 10,
cookMin: 0,
portions: 6,
spiceLevel: 0,
mealPrepFriendly: true,
freezerFriendly: false,
peakSeasons: ["winter", "summer"],
holidayTags: ["jul", "påsk", "midsommar", "nyår"],
variantType: "standard",
dnaProtein: "pickled_herring",
dnaVegetables: [],
dnaFlavor: ["tangy", "mustard", "dill"],
verificationStatus: "editorial",
ingredients: [
{ ing: "pickled_herring", nameSv: "Inlagd sill", qty: 300, unit: "GRAM", optional: false },
{ ing: "mustard", nameSv: "Sötstark senap", qty: 60, unit: "GRAM", optional: false },
{ ing: "sugar", nameSv: "Socker", qty: 25, unit: "GRAM", optional: false },
{ ing: "cream", nameSv: "Grädde", qty: 1, unit: "DECILITER", optional: false },
{ ing: "olive_oil", nameSv: "Rapsolja", qty: 2, unit: "TABLESPOON", optional: false },
{ ing: "dill", nameSv: "Dill", qty: 20, unit: "GRAM", optional: false },
],
steps: [
{ text: "Låt sillbitarna rinna av och skär dem i lagom munsbitar." },
{
text: "Vispa ihop senap, socker och olja till en slät röra. Vispa ner grädden så såsen blir krämig.",
},
{ text: "Hacka dillen och rör ner det mesta i såsen." },
{
text: "Vänd ner sillen, toppa med resten av dillen och låt stå kallt minst en timme före servering.",
},
],
},
{
slug: "stekt-prinskorv",
titleSv: "Stekta prinskorvar",
descriptionSv:
"Gyllene, knapriga prinskorvar stekta i smör julbordets favorit bland både barn och vuxna.",
cuisine: "swedish",
mealTypes: ["buffet"],
tags: ["kid_friendly", "quick", "gluten_free"],
methods: ["stovetop"],
equipment: ["stove"],
difficulty: "beginner",
prepMin: 5,
cookMin: 10,
portions: 6,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["winter"],
holidayTags: ["jul", "nyår"],
variantType: "standard",
dnaProtein: "prinskorv",
dnaVegetables: [],
dnaFlavor: ["savory", "buttery"],
verificationStatus: "editorial",
ingredients: [
{ ing: "prinskorv", nameSv: "Prinskorv", qty: 400, unit: "GRAM", optional: false },
{ ing: "butter", nameSv: "Smör", qty: 25, unit: "GRAM", optional: false },
],
steps: [
{ text: "Klipp eventuellt av korvarna från varandra och snitta dem lätt om du vill." },
{ text: "Smält smöret i en stekpanna på medelvärme." },
{
text: "Stek prinskorvarna under omrörning tills de är gyllene och genomvarma, cirka 8 minuter. Servera direkt.",
},
],
},
{
slug: "kokta-kraftor-med-dill",
titleSv: "Kokta kräftor med krondill",
descriptionSv:
"Kräftor kokta i klassisk dillag med socker och salt själva mittpunkten på kräftskivan i augusti.",
cuisine: "swedish",
mealTypes: ["buffet", "dinner"],
tags: ["high_protein", "gluten_free", "luxury"],
methods: ["stovetop"],
equipment: ["stove"],
difficulty: "medium",
prepMin: 15,
cookMin: 15,
portions: 6,
spiceLevel: 0,
mealPrepFriendly: true,
freezerFriendly: true,
peakSeasons: ["summer", "autumn"],
holidayTags: ["kraftskiva"],
variantType: "standard",
dnaProtein: "crayfish",
dnaVegetables: [],
dnaFlavor: ["dill", "briny", "sweet"],
verificationStatus: "editorial",
ingredients: [
{ ing: "crayfish", nameSv: "Kräftor", qty: 1000, unit: "GRAM", optional: false },
{ ing: "dill", nameSv: "Krondill", qty: 50, unit: "GRAM", optional: false },
{ ing: "salt", nameSv: "Salt", qty: 100, unit: "GRAM", optional: false },
{ ing: "sugar", nameSv: "Socker", qty: 20, unit: "GRAM", optional: false },
],
steps: [
{
text: "Koka upp cirka 2 liter vatten med salt, socker och hälften av krondillen. Låt lagen sjuda 10 minuter så smaken sätter sig.",
},
{ text: "Lägg i kräftorna, koka upp igen och låt sjuda cirka 68 minuter." },
{ text: "Ta grytan från värmen och lägg i resten av krondillen." },
{
text: "Låt kräftorna kallna i lagen, gärna över natten i kylen, så de får full dillsmak. Servera väl kylda.",
},
],
},
{
slug: "aioli-till-skaldjur",
titleSv: "Vitlöksaioli",
descriptionSv:
"Slät, vitlöksstark aioli som passar perfekt till kräftor, räkor och västerbottenpaj på skaldjursbordet.",
cuisine: "swedish",
mealTypes: ["buffet", "starter"],
tags: ["vegetarian", "gluten_free"],
methods: ["no_cook"],
equipment: [],
difficulty: "beginner",
prepMin: 10,
cookMin: 0,
portions: 8,
spiceLevel: 0,
mealPrepFriendly: true,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["kraftskiva", "nyår", "grillsasong"],
variantType: "standard",
dnaVegetables: [],
dnaFlavor: ["garlic", "creamy", "tangy"],
verificationStatus: "editorial",
ingredients: [
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 200, unit: "GRAM", optional: false },
{ ing: "garlic", nameSv: "Vitlöksklyfta", qty: 2, unit: "COUNT", optional: false },
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
{ ing: "lemon", nameSv: "Citron", qty: 1, unit: "COUNT", optional: false },
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: true },
],
steps: [
{ text: "Pressa eller riv vitlöken fint." },
{ text: "Rör ihop majonnäs, vitlök och olivolja till en slät kräm." },
{
text: "Smaka av med pressad citron och salt. Låt stå kallt minst 30 minuter innan servering.",
},
],
},
{
slug: "ostbricka-till-kraftskivan",
titleSv: "Ostbricka med västerbottensost",
descriptionSv:
"En enkel ostbricka med kraftig västerbottensost, lagrad hårdost, druvor och valnötter det goda avslutet på kräftskivan.",
cuisine: "swedish",
mealTypes: ["buffet", "snack"],
tags: ["vegetarian"],
methods: ["no_cook"],
equipment: [],
difficulty: "beginner",
prepMin: 10,
cookMin: 0,
portions: 8,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer", "autumn"],
holidayTags: ["kraftskiva", "nyår"],
variantType: "standard",
dnaVegetables: [],
dnaFlavor: ["savory", "nutty", "sweet"],
verificationStatus: "editorial",
ingredients: [
{
ing: "vasterbotten_cheese",
nameSv: "Västerbottensost",
qty: 200,
unit: "GRAM",
optional: false,
},
{ ing: "cheese_hard", nameSv: "Lagrad hårdost", qty: 200, unit: "GRAM", optional: false },
{ ing: "grape", nameSv: "Vindruvor", qty: 200, unit: "GRAM", optional: false },
{ ing: "walnut", nameSv: "Valnötter", qty: 50, unit: "GRAM", optional: false },
],
steps: [
{ text: "Ta fram ostarna en stund före servering så de får rumstemperatur och full smak." },
{ text: "Skär ostarna i bitar eller klyftor och lägg upp på en bricka." },
{
text: "Skölj druvorna och dela dem i mindre klasar. Fördela dem och valnötterna på brickan.",
},
],
},
{
slug: "farskpotatis-med-dill",
titleSv: "Färskpotatis med smör och dill",
descriptionSv:
"Nykokt färskpotatis vänd i smör och färsk dill midsommarbordets doftande självklarhet.",
cuisine: "swedish",
mealTypes: ["buffet", "lunch", "dinner"],
tags: ["vegetarian", "gluten_free", "budget"],
methods: ["stovetop"],
equipment: ["stove"],
difficulty: "beginner",
prepMin: 10,
cookMin: 20,
portions: 6,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["midsommar"],
variantType: "standard",
dnaCarb: "new_potato",
dnaVegetables: [],
dnaFlavor: ["dill", "buttery"],
verificationStatus: "editorial",
ingredients: [
{ ing: "new_potato", nameSv: "Färskpotatis", qty: 800, unit: "GRAM", optional: false },
{ ing: "butter", nameSv: "Smör", qty: 40, unit: "GRAM", optional: false },
{ ing: "dill", nameSv: "Dill", qty: 30, unit: "GRAM", optional: false },
{ ing: "salt", nameSv: "Salt", qty: 2, unit: "TEASPOON", optional: false },
],
steps: [
{
text: "Borsta färskpotatisen ren och koka den i lättsaltat vatten tills den är mjuk, cirka 18 minuter.",
},
{ text: "Häll av vattnet och låt potatisen ånga av." },
{
text: "Vänd ner smöret så det smälter runt potatisen och strö över rikligt med hackad dill. Salta efter smak.",
},
],
},
{
slug: "agghalvor-med-rakror",
titleSv: "Ägghalvor med räkröra",
descriptionSv:
"Kokta ägg toppade med krämig räkröra och dill en klassiker på påskbordet och det kalla buffébordet.",
cuisine: "swedish",
mealTypes: ["buffet", "starter"],
tags: ["high_protein", "gluten_free"],
methods: ["stovetop"],
equipment: ["stove"],
difficulty: "easy",
prepMin: 15,
cookMin: 10,
portions: 6,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["spring"],
holidayTags: ["påsk", "nyår"],
variantType: "standard",
dnaProtein: "egg",
dnaVegetables: [],
dnaFlavor: ["creamy", "dill", "briny"],
verificationStatus: "editorial",
ingredients: [
{ ing: "egg", nameSv: "Ägg", qty: 6, unit: "COUNT", optional: false },
{ ing: "shrimp", nameSv: "Räkor", qty: 200, unit: "GRAM", optional: false },
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 80, unit: "GRAM", optional: false },
{ ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 1, unit: "DECILITER", optional: false },
{ ing: "dill", nameSv: "Dill", qty: 15, unit: "GRAM", optional: false },
],
steps: [
{ text: "Hårdkoka äggen cirka 8 minuter, spola kalla och skala dem. Dela dem på längden." },
{ text: "Blanda majonnäs och crème fraiche och vänd ner de flesta räkorna och hackad dill." },
{ text: "Klicka räkröran på ägghalvorna och toppa med resten av räkorna och lite dill." },
],
},
{
slug: "rakcocktail",
titleSv: "Räkcocktail",
descriptionSv:
"Handskalade räkor på frisk sallad med len röd cocktailsås en elegant förrätt till nyår och fest.",
cuisine: "swedish",
mealTypes: ["starter", "buffet"],
tags: ["high_protein", "luxury", "gluten_free"],
methods: ["no_cook"],
equipment: [],
difficulty: "easy",
prepMin: 15,
cookMin: 0,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["winter"],
holidayTags: ["nyår", "påsk"],
variantType: "standard",
dnaProtein: "shrimp",
dnaVegetables: [],
dnaFlavor: ["creamy", "tangy", "briny"],
verificationStatus: "editorial",
ingredients: [
{ ing: "shrimp", nameSv: "Handskalade räkor", qty: 300, unit: "GRAM", optional: false },
{ ing: "lettuce", nameSv: "Isbergssallad", qty: 1, unit: "COUNT", optional: false },
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 100, unit: "GRAM", optional: false },
{ ing: "tomato_paste", nameSv: "Tomatpuré", qty: 30, unit: "GRAM", optional: false },
{ ing: "lemon", nameSv: "Citron", qty: 1, unit: "COUNT", optional: false },
],
steps: [
{ text: "Strimla salladen fint och fördela i portionsglas." },
{
text: "Rör ihop majonnäs och tomatpuré till en slät rosa sås och smaka av med pressad citron.",
},
{ text: "Lägg räkorna på salladen, klicka på såsen och toppa med en citronklyfta." },
],
},
{
slug: "grillspett-med-halloumi",
titleSv: "Grillspett med halloumi och grönsaker",
descriptionSv:
"Färgglada grillspett med halloumi, paprika och zucchini enkelt och vegetariskt på grillkvällen.",
cuisine: "swedish",
mealTypes: ["dinner", "lunch"],
tags: ["vegetarian", "gluten_free", "quick"],
methods: ["grill"],
equipment: ["grill"],
difficulty: "easy",
prepMin: 15,
cookMin: 10,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["grillsasong", "valborg"],
variantType: "standard",
dnaProtein: "halloumi",
dnaVegetables: ["bell_pepper", "zucchini"],
dnaFlavor: ["savory", "smoky", "salty"],
verificationStatus: "editorial",
ingredients: [
{ ing: "halloumi", nameSv: "Halloumi", qty: 250, unit: "GRAM", optional: false },
{ ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false },
{ ing: "zucchini", nameSv: "Zucchini", qty: 1, unit: "COUNT", optional: false },
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
],
steps: [
{ text: "Skär halloumi, paprika och zucchini i jämnstora bitar." },
{ text: "Trä omväxlande halloumi och grönsaker på spett och pensla med olivolja." },
{
text: "Grilla spetten på medelvärme och vänd dem tills halloumin fått fin färg och grönsakerna mjuknat, cirka 8 minuter.",
},
],
},
{
slug: "grillad-kycklingfile",
titleSv: "Grillad kycklingfilé med paprika",
descriptionSv:
"Saftig kycklingfilé marinerad i olivolja, vitlök och paprikapulver en trygg favorit hela grillsäsongen.",
cuisine: "swedish",
mealTypes: ["dinner", "lunch"],
tags: ["high_protein", "gluten_free"],
methods: ["grill"],
equipment: ["grill"],
difficulty: "easy",
prepMin: 15,
cookMin: 15,
portions: 4,
spiceLevel: 1,
mealPrepFriendly: true,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["grillsasong"],
variantType: "standard",
dnaProtein: "chicken_breast",
dnaVegetables: [],
dnaFlavor: ["garlic", "paprika", "smoky"],
verificationStatus: "editorial",
ingredients: [
{ ing: "chicken_breast", nameSv: "Kycklingfilé", qty: 600, unit: "GRAM", optional: false },
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
{ ing: "garlic", nameSv: "Vitlöksklyfta", qty: 2, unit: "COUNT", optional: false },
{ ing: "paprika_powder", nameSv: "Paprikapulver", qty: 2, unit: "TEASPOON", optional: false },
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
],
steps: [
{ text: "Rör ihop olivolja, pressad vitlök, paprikapulver och salt till en marinad." },
{ text: "Vänd kycklingfiléerna i marinaden och låt dem gärna stå kallt 30 minuter." },
{
text: "Grilla filéerna på medelvärme tills de är genomstekta, cirka 67 minuter per sida. Låt vila några minuter före servering.",
},
],
},
{
slug: "pastasallad-i-matlada",
titleSv: "Pastasallad i matlådan",
descriptionSv:
"Enkel, matig pastasallad med fetaost och paprika perfekt att förbereda för skolstartens matlådor och luncher.",
cuisine: "swedish",
mealTypes: ["lunch"],
tags: ["vegetarian", "meal_prep", "budget", "batch_cooking"],
methods: ["stovetop"],
equipment: ["stove"],
difficulty: "beginner",
prepMin: 15,
cookMin: 10,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: true,
freezerFriendly: false,
peakSeasons: ["autumn"],
holidayTags: ["skolstart"],
variantType: "standard",
dnaCarb: "pasta_dry",
dnaVegetables: ["bell_pepper", "tomato"],
dnaFlavor: ["savory", "salty", "fresh"],
verificationStatus: "editorial",
ingredients: [
{ ing: "pasta_dry", nameSv: "Pasta", qty: 300, unit: "GRAM", optional: false },
{ ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false },
{ ing: "tomato", nameSv: "Tomat", qty: 200, unit: "GRAM", optional: false },
{ ing: "feta", nameSv: "Fetaost", qty: 150, unit: "GRAM", optional: false },
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
],
steps: [
{ text: "Koka pastan enligt anvisning på paketet, spola kall och låt rinna av." },
{ text: "Tärna paprika och tomat och smula fetaosten." },
{
text: "Blanda pasta, grönsaker och fetaost med olivolja. Salta efter smak och fördela i matlådor.",
},
],
},
{
slug: "tillbehor-till-surstromming",
titleSv: "Tillbehör till surströmming",
descriptionSv:
"Klassiska tillbehör till surströmmingsskivan: nykokt mandelpotatis, hackad rödlök, gräddig färskost och västerbottensost.",
cuisine: "swedish",
mealTypes: ["buffet", "dinner"],
tags: ["gluten_free"],
methods: ["stovetop"],
equipment: ["stove"],
difficulty: "beginner",
prepMin: 15,
cookMin: 20,
portions: 6,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer", "autumn"],
holidayTags: ["surstromming"],
variantType: "standard",
dnaCarb: "new_potato",
dnaVegetables: [],
dnaFlavor: ["savory", "sharp", "creamy"],
verificationStatus: "editorial",
ingredients: [
{ ing: "new_potato", nameSv: "Mandelpotatis", qty: 600, unit: "GRAM", optional: false },
{ ing: "red_onion", nameSv: "Rödlök", qty: 100, unit: "GRAM", optional: false },
{
ing: "creme_fraiche",
nameSv: "Gräddfil eller crème fraiche",
qty: 2,
unit: "DECILITER",
optional: false,
},
{
ing: "vasterbotten_cheese",
nameSv: "Västerbottensost",
qty: 150,
unit: "GRAM",
optional: false,
},
],
steps: [
{
text: "Koka mandelpotatisen mjuk i lättsaltat vatten, cirka 18 minuter, och låt den svalna något.",
},
{ text: "Hacka rödlöken fint och riv västerbottensosten." },
{
text: "Ställ fram potatis, rödlök, gräddfil och riven ost i skålar så var och en kan bygga sin egen klämma.",
},
],
},
{
slug: "kryddig-kyckling-med-ris",
titleSv: "Kryddig kyckling med ris",
descriptionSv:
"Mör kyckling långsamt fräst med lök, vitlök och varma kryddor, serverad på fluffigt ris \u2013 en festmåltid som passar fint till Eid och andra högtidsmiddagar.",
cuisine: "middle_eastern",
mealTypes: ["dinner", "buffet"],
tags: ["high_protein", "gluten_free"],
methods: ["stovetop"],
equipment: ["stove"],
difficulty: "easy",
prepMin: 15,
cookMin: 35,
portions: 4,
spiceLevel: 1,
mealPrepFriendly: true,
freezerFriendly: true,
peakSeasons: [],
holidayTags: ["eid"],
variantType: "standard",
dnaProtein: "chicken_thigh",
dnaCarb: "rice_white",
dnaVegetables: [],
dnaFlavor: ["warm_spice", "garlic", "savory"],
verificationStatus: "editorial",
ingredients: [
{ ing: "chicken_thigh", nameSv: "Kycklinglårfilé", qty: 600, unit: "GRAM", optional: false },
{ ing: "rice_white", nameSv: "Ris", qty: 300, unit: "GRAM", optional: false },
{ ing: "onion", nameSv: "Gul lök", qty: 1, unit: "COUNT", optional: false },
{ ing: "garlic", nameSv: "Vitlöksklyfta", qty: 2, unit: "COUNT", optional: false },
{ ing: "garam_masala", nameSv: "Garam masala", qty: 6, unit: "GRAM", optional: false },
{ ing: "turmeric", nameSv: "Gurkmeja", qty: 3, unit: "GRAM", optional: false },
{ ing: "olive_oil", nameSv: "Olja", qty: 2, unit: "TABLESPOON", optional: false },
{ ing: "salt", nameSv: "Salt", qty: 1, unit: "TEASPOON", optional: false },
],
steps: [
{ text: "Koka riset enligt anvisningen på paketet och håll det varmt." },
{ text: "Skär kycklingen i bitar. Hetta upp oljan och fräs hackad lök och vitlök mjuk." },
{ text: "Lägg i kycklingen och krydda med garam masala, gurkmeja och salt. Bryn runt om." },
{
text: "Häll i en skvätt vatten, lägg på lock och låt sjuda tills kycklingen är genomstekt och mör, cirka 20 minuter. Servera på riset.",
},
],
},
]; ];
@@ -801,7 +801,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [
mealPrepFriendly: true, mealPrepFriendly: true,
freezerFriendly: true, freezerFriendly: true,
peakSeasons: ["autumn", "winter"], peakSeasons: ["autumn", "winter"],
holidayTags: [], holidayTags: ["halloween"],
variantType: "standard", variantType: "standard",
dnaVegetables: ["canned_tomatoes", "onion", "basil"], dnaVegetables: ["canned_tomatoes", "onion", "basil"],
dnaFlavor: ["tomato", "herby", "comforting"], dnaFlavor: ["tomato", "herby", "comforting"],
@@ -898,7 +898,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [
mealPrepFriendly: true, mealPrepFriendly: true,
freezerFriendly: true, freezerFriendly: true,
peakSeasons: ["autumn", "winter"], peakSeasons: ["autumn", "winter"],
holidayTags: [], holidayTags: ["skolstart"],
storageGuidanceSv: "Håller 4 dagar i kyl, fryser utmärkt i portionslådor.", storageGuidanceSv: "Håller 4 dagar i kyl, fryser utmärkt i portionslådor.",
variantType: "standard", variantType: "standard",
dnaProtein: "minced_beef", dnaProtein: "minced_beef",
@@ -1147,7 +1147,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [
mealPrepFriendly: true, mealPrepFriendly: true,
freezerFriendly: true, freezerFriendly: true,
peakSeasons: [], peakSeasons: [],
holidayTags: [], holidayTags: ["skolstart"],
storageGuidanceSv: "Såsen håller 3 dagar i kyl och fryser utmärkt.", storageGuidanceSv: "Såsen håller 3 dagar i kyl och fryser utmärkt.",
variantType: "standard", variantType: "standard",
dnaProtein: "minced_beef", dnaProtein: "minced_beef",
@@ -1260,7 +1260,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [
mealPrepFriendly: false, mealPrepFriendly: false,
freezerFriendly: false, freezerFriendly: false,
peakSeasons: ["summer"], peakSeasons: ["summer"],
holidayTags: [], holidayTags: ["grillsasong"],
variantType: "standard", variantType: "standard",
dnaProtein: "feta", dnaProtein: "feta",
dnaVegetables: ["tomato", "cucumber", "red_onion", "olives"], dnaVegetables: ["tomato", "cucumber", "red_onion", "olives"],
@@ -1358,7 +1358,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [
mealPrepFriendly: true, mealPrepFriendly: true,
freezerFriendly: true, freezerFriendly: true,
peakSeasons: ["summer"], peakSeasons: ["summer"],
holidayTags: ["midsommar", "jul"], holidayTags: ["midsommar", "jul", "kraftskiva"],
storageGuidanceSv: "Håller 3 dagar i kyl. Kan bakas dagen innan och värmas.", storageGuidanceSv: "Håller 3 dagar i kyl. Kan bakas dagen innan och värmas.",
variantType: "standard", variantType: "standard",
dnaProtein: "vasterbotten_cheese", dnaProtein: "vasterbotten_cheese",
@@ -1822,7 +1822,7 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [
mealPrepFriendly: false, mealPrepFriendly: false,
freezerFriendly: false, freezerFriendly: false,
peakSeasons: ["summer"], peakSeasons: ["summer"],
holidayTags: ["grillsäsong"], holidayTags: ["grillsasong", "valborg"],
variantType: "standard", variantType: "standard",
dnaProtein: "halloumi", dnaProtein: "halloumi",
dnaCarb: "hamburger_bun", dnaCarb: "hamburger_bun",
+2 -2
View File
@@ -32,8 +32,8 @@ function sourcesFor(
} }
describe("extrarecept seed-invarianter", () => { describe("extrarecept seed-invarianter", () => {
it("har minst 59 recept", () => { it("har minst 74 recept", () => {
expect(EXTRA_RECIPES.length).toBeGreaterThanOrEqual(59); expect(EXTRA_RECIPES.length).toBeGreaterThanOrEqual(74);
}); });
it("alla ingrediens-id:n finns i katalogen (run.ts rad 675)", () => { it("alla ingrediens-id:n finns i katalogen (run.ts rad 675)", () => {