feat: enhance category handling with new category chip logic and user-specific product categorization
Test Suite / test (24.15.0) (push) Has been cancelled
Test Suite / test (24.15.0) (push) Has been cancelled
This commit is contained in:
@@ -85,6 +85,47 @@ Se även:
|
||||
> Se [NEXT_STEPS.md](NEXT_STEPS.md) för förslag på nästa steg i projektet.
|
||||
> Se [_archive/microservice-ai/AI-FUNKTIONER.md](_archive/microservice-ai/AI-FUNKTIONER.md) för planerade AI-funktioner och modellval.
|
||||
|
||||
### Ytterligare förbättringar (2026-05-11)
|
||||
|
||||
- **Produktomkategorisering (user-scope):**
|
||||
- Ny endpoint `PATCH /products/mine/:id/category` för att användare ska kunna omkategorisera sina egna produkter (ej globala).
|
||||
- Backend-policy: endast produkter märkta med `isPrivate: true` och där `ownerId === userId` kan omkategoriseras. Globala produkter är låsta för ändring.
|
||||
- DTO-validering och ParseIntPipe skyddar mot ogiltiga id:n och payloads.
|
||||
- Service och controller har utökats med tydliga undantag och felhantering.
|
||||
|
||||
- **Säkerhetshärdning och testtäckning:**
|
||||
- Forbidden-meddelanden från backend mappas nu via allowlist i Flutter för att undvika informationsläckage.
|
||||
- Utökad testtäckning: service-tester, controller-tester och HTTP endpoint-tester för alla grenar (inklusive ogiltig path-param, forbidden, valid/invalid payload).
|
||||
- Testerna verifierar att globala produkter inte kan ändras, att endast ägaren kan omkategorisera, och att felaktiga anrop returnerar rätt statuskod.
|
||||
- Testerna körs automatiskt i CI/CD och valideras även efter `npm ci` (lockfile-baserad installation).
|
||||
|
||||
- **Flutter/Frontend:**
|
||||
- Produktpicker och inventory-flöden har förbättrats: picker kan öppnas även om listan är tom, och det går att skapa produkt direkt från picker.
|
||||
- Omkategorisering av produkt sker nu automatiskt vid kategoriändring i inventory-edit/create.
|
||||
- Deduplicerad logik för produktmutationer i helper-fil.
|
||||
- Error-mapping i Flutter tillåter nu backend-forbidden-meddelanden på allowlist, annars visas generiskt fel.
|
||||
|
||||
- **Seed-data och deploy:**
|
||||
- Nya kategorier tillagda i seed (t.ex. `Marmelad`, `Sylt`, `Mos`, `Korvbröd`, `Grädde`).
|
||||
- Deploy-scriptet kör seed automatiskt och verifierar att kategoriträdet är uppdaterat.
|
||||
- Dokumentation för hur man verifierar seed och hanterar merge-konflikter vid deploy.
|
||||
|
||||
- **Kodkvalitet och serverkompatibilitet:**
|
||||
- Inga absoluta Windows-sökvägar används i kodbasen (validerat via sökning).
|
||||
- Alla beroenden är låsta i `package-lock.json` och testade med Node >=14.18.
|
||||
- `supertest` används med CommonJS-import i tester för maximal kompatibilitet.
|
||||
- Testsviten (21 tester för produkter) är grön efter både lokal och serverliknande (npm ci) installation.
|
||||
|
||||
- **CI/CD och testinfrastruktur:**
|
||||
- HTTP endpoint-tester täcker nu även felaktiga path-parametrar och validerar att service inte anropas vid 400.
|
||||
- Testerna körs automatiskt i pipeline och måste passera för att deploy ska ske.
|
||||
|
||||
Se även:
|
||||
- [products.update-category.http.spec.ts](backend/src/products/products.update-category.http.spec.ts) för HTTP-tester
|
||||
- [products.service.spec.ts](backend/src/products/products.service.spec.ts) för servicetester
|
||||
- [products.security.spec.ts](backend/src/products/products.security.spec.ts) för controller/metadata-tester
|
||||
|
||||
|
||||
## Dokumentstatus (2026-05-03)
|
||||
|
||||
### Målgrupp
|
||||
|
||||
Reference in New Issue
Block a user