From 35600023b72865d0c664f74aed309badc6a45853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20MARQUET?= Date: Sat, 18 Oct 2025 19:37:32 +0200 Subject: [PATCH] feat: enhance user seeding with UUIDs and improve code formatting in various files --- .github/workflows/ci.yml | 27 +- app/admin/page.tsx | 39 +- app/dashboard/page.tsx | 17 +- components/Header.tsx | 15 +- components/providers.tsx | 4 +- context/SettingsContext.tsx | 16 +- cypress.config.ts | 4 +- cypress/e2e/login.cy.ts | 15 +- pnpm-lock.yaml | 2838 ++++++++++++++++++++++++++--------- scripts/seed-test.js | 2 + 10 files changed, 2213 insertions(+), 764 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d0cf08a..8038688 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,22 +2,23 @@ name: CI on: pull_request: - branches: [ main ] + branches: [main] jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: '22' - - uses: pnpm/action-setup@v4 - with: - version: 8 - - run: pnpm install - - run: npx prisma generate - - run: npx prisma db push - - run: node scripts/seed-test.js - - run: pnpm ci + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '22' + - uses: pnpm/action-setup@v4 + with: + version: 8 + - run: pnpm install + - run: npx prisma generate + - run: npx prisma db push + - run: node scripts/seed-test.js + - run: pnpm ci + - run: pnpm run build diff --git a/app/admin/page.tsx b/app/admin/page.tsx index 4e11895..ae881c6 100644 --- a/app/admin/page.tsx +++ b/app/admin/page.tsx @@ -246,7 +246,8 @@ export default function AdminPage() { const userMap = users.reduce( (acc, user) => { - const name = `${user.firstName || ''} ${user.lastName || ''}`.trim() || user.email; + const name = + `${user.firstName || ''} ${user.lastName || ''}`.trim() || user.email; acc[user.id] = { name, email: user.email, role: user.role }; return acc; }, @@ -256,7 +257,7 @@ export default function AdminPage() { const userTotals = users.reduce( (acc, user) => { acc[user.id] = hours - .filter(h => h.userId === user.id && h.status === 'VALIDATED') + .filter((h) => h.userId === user.id && h.status === 'VALIDATED') .reduce((sum, h) => sum + h.duration, 0); return acc; }, @@ -444,13 +445,14 @@ export default function AdminPage() { {hour.reason} {hour.status === 'VALIDATED' && hour.validatedBy - ? `Validé par ${hour.validatedBy.firstName || ''} ${hour.validatedBy.lastName || ''}`.trim() || hour.validatedBy.email + ? `Validé par ${hour.validatedBy.firstName || ''} ${hour.validatedBy.lastName || ''}`.trim() || + hour.validatedBy.email : hour.status === 'REJECTED' && hour.validatedBy - ? `Rejeté par ${hour.validatedBy.firstName || ''} ${hour.validatedBy.lastName || ''}`.trim() || hour.validatedBy.email - : hour.status === 'PENDING' - ? 'En attente' - : hour.status - } + ? `Rejeté par ${hour.validatedBy.firstName || ''} ${hour.validatedBy.lastName || ''}`.trim() || + hour.validatedBy.email + : hour.status === 'PENDING' + ? 'En attente' + : hour.status} {userMap[hour.userId]?.name} @@ -729,7 +731,10 @@ export default function AdminPage() { )} {selectedUserForReset && ( - + Réinitialiser le mot de passe @@ -750,23 +755,31 @@ export default function AdminPage() { - + )} {selectedUserForReset && confirmResetPassword && ( - + Confirmation de réinitialisation - Êtes-vous sûr de vouloir réinitialiser le mot de passe de {selectedUserForReset.name} ? + Êtes-vous sûr de vouloir réinitialiser le mot de passe de{' '} + {selectedUserForReset.name} ? - + diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx index dbedca8..4e7974a 100644 --- a/app/dashboard/page.tsx +++ b/app/dashboard/page.tsx @@ -243,14 +243,17 @@ export default function DashboardPage() { {hour.duration} min {hour.reason} - {hour.status === 'VALIDATED' && hour.validatedBy - ? `Validé par ${hour.validatedBy.firstName || ''} ${hour.validatedBy.lastName || ''}`.trim() || hour.validatedBy.email + + {hour.status === 'VALIDATED' && hour.validatedBy + ? `Validé par ${hour.validatedBy.firstName || ''} ${hour.validatedBy.lastName || ''}`.trim() || + hour.validatedBy.email : hour.status === 'REJECTED' && hour.validatedBy - ? `Rejeté par ${hour.validatedBy.firstName || ''} ${hour.validatedBy.lastName || ''}`.trim() || hour.validatedBy.email - : hour.status === 'PENDING' - ? 'En attente' - : hour.status - } + ? `Rejeté par ${hour.validatedBy.firstName || ''} ${hour.validatedBy.lastName || ''}`.trim() || + hour.validatedBy.email + : hour.status === 'PENDING' + ? 'En attente' + : hour.status} + {isAdmin && {hour.user.email}} {isAdmin && ( diff --git a/components/Header.tsx b/components/Header.tsx index 64191c2..04f410e 100644 --- a/components/Header.tsx +++ b/components/Header.tsx @@ -22,12 +22,15 @@ export default function Header() { {session && (
- {session.user.email} ({ - session.user.role === 'MEMBER' ? 'Membre' : - session.user.role === 'ADMIN' ? 'Bureau' : - session.user.role === 'SUPER_ADMIN' ? 'Gestionnaire' : - session.user.role - }) + {session.user.email} ( + {session.user.role === 'MEMBER' + ? 'Membre' + : session.user.role === 'ADMIN' + ? 'Bureau' + : session.user.role === 'SUPER_ADMIN' + ? 'Gestionnaire' + : session.user.role} + )