refactor: unify budget grid card and add list row#315
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
🔍 Review PR #315Résumé: 🚨 1 bloquant · 🚨 Bloquants (merge impossible)
|
|
|
||
| ::ng-deep .mat-expansion-panel-body { | ||
| padding: 0 !important; | ||
| } |
There was a problem hiding this comment.
🚨 Bloquant: Utilisation de ::ng-deep interdite
L'utilisation de ::ng-deep est explicitement interdite par les best practices Angular du projet. Ce sélecteur est déprécié et brise l'encapsulation des styles.
Solution recommandée:
// Option 1: ViewEncapsulation.None
import { ViewEncapsulation } from '@angular/core';
@Component({
// ...
encapsulation: ViewEncapsulation.None,
})Ou ajouter dans un fichier de styles global (styles.scss).
| readonly edit = output<BudgetLineTableItem>(); | ||
| readonly delete = output<string>(); | ||
| readonly addTransaction = output<BudgetLine>(); | ||
| readonly viewTransactions = output<BudgetLineTableItem>(); |
There was a problem hiding this comment.
viewTransactions déclaré mais jamais émis
Cet output est déclaré mais aucun bouton dans le template ne l'émet. Contrairement à BudgetGridCard (lignes 167-184), BudgetListRow n'a pas de bouton pour voir les transactions.
Impact: Dead code qui crée de la confusion.
Fix: Supprimer l'output ou ajouter un bouton équivalent au card.
| describe('Card Click Logic', () => { | ||
| it('should not emit cardClick when isMobile is true', () => { |
There was a problem hiding this comment.
🚨 Bloquant: Tests qui testent l'implémentation, pas le comportement
Ces tests violent le principe critique "tester le comportement, pas l'implémentation". Ils testent une fonction isolée au lieu du comportement réel du composant.
Problème: Si vous renommez onCardClick ou changez la logique interne, ces tests cassent même si le comportement utilisateur reste correct.
Fix:
- Soit supprimer ces tests (E2E couvre déjà ce cas)
- Soit utiliser un vrai test de composant avec TestBed si le workaround
input.required()peut être contourné
| }); | ||
| }); | ||
|
|
||
| describe('Category Grouping', () => { |
There was a problem hiding this comment.
💡 Suggestion: Tests mal placés
Ces tests "Category Grouping" sont dans budget-grid-card.spec.ts mais testent la logique du computed categories qui appartient à budget-grid.ts.
Suggestion: Déplacer vers budget-grid.spec.ts ou supprimer si couverts par E2E.
| }; | ||
| return [income, saving, expense]; | ||
|
|
||
| const calcTotal = (list: BudgetLineTableItem[]) => |
There was a problem hiding this comment.
💡 Suggestion: Extraire la fonction inline
La fonction calcTotal pourrait être extraite comme méthode privée pour améliorer la lisibilité et permettre les tests unitaires:
#calcTotal(list: BudgetLineTableItem[]): number {
return list.reduce((sum, i) => sum + i.data.amount, 0);
}
🎭 Playwright E2E Tests74 tests ±0 73 ✅ - 1 4m 17s ⏱️ +16s For more details on these failures, see this check. Results for commit e4f4453. ± Comparison against base commit 08a4bb1. ♻️ This comment has been updated with latest results. |
Refactor budget grid component by: