From 5f4596578f596860b795b0e951443a59ed8d7742 Mon Sep 17 00:00:00 2001 From: gilles Date: Tue, 22 Sep 2026 08:39:04 +0200 Subject: [PATCH] =?UTF-8?q?fix(ui):=20directives=20use=20client=20et=20cor?= =?UTF-8?q?rectifs=20qualit=C3=A9=20(lint,=20format,=20typecheck,=20tests)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/cards/[id]/edit/page.tsx | 6 +----- src/app/cards/[id]/page.tsx | 6 +----- src/components/card-delete.test.tsx | 6 ++++-- src/components/card-detail.test.tsx | 4 +++- src/components/card-detail.tsx | 23 ++++++++++++++++------- src/components/card-form.test.tsx | 6 ++++-- src/components/card-form.tsx | 4 +++- src/components/card-list.test.tsx | 24 ++++++++++++++++++++---- src/components/card-list.tsx | 8 +++++++- src/lib/api-client.test.ts | 19 +++++++++++-------- src/lib/api-client.ts | 9 +++++++-- 11 files changed, 77 insertions(+), 38 deletions(-) diff --git a/src/app/cards/[id]/edit/page.tsx b/src/app/cards/[id]/edit/page.tsx index 7cc784f..da374ea 100644 --- a/src/app/cards/[id]/edit/page.tsx +++ b/src/app/cards/[id]/edit/page.tsx @@ -7,11 +7,7 @@ import { ApiClientError, cardsApi } from '@/lib/api-client' export const metadata: Metadata = { title: 'Modifier la carte' } -export default async function EditCardPage({ - params, -}: { - params: Promise<{ id: string }> -}) { +export default async function EditCardPage({ params }: { params: Promise<{ id: string }> }) { const { id } = await params let card: Card | null = null try { diff --git a/src/app/cards/[id]/page.tsx b/src/app/cards/[id]/page.tsx index 40e775e..73fbefa 100644 --- a/src/app/cards/[id]/page.tsx +++ b/src/app/cards/[id]/page.tsx @@ -5,11 +5,7 @@ export const metadata: Metadata = { title: 'Carte', } -export default async function CardDetailPage({ - params, -}: { - params: Promise<{ id: string }> -}) { +export default async function CardDetailPage({ params }: { params: Promise<{ id: string }> }) { const { id } = await params return (
diff --git a/src/components/card-delete.test.tsx b/src/components/card-delete.test.tsx index 3893b4c..d2f93e4 100644 --- a/src/components/card-delete.test.tsx +++ b/src/components/card-delete.test.tsx @@ -1,6 +1,6 @@ import { render, screen, within } from '@testing-library/react' import userEvent from '@testing-library/user-event' -import { beforeEach, describe, expect, it, vi } from 'vitest' +import { beforeEach, expect, it, vi } from 'vitest' import { CardDeleteButton } from './card-delete' vi.mock('@/lib/api-client', () => { @@ -52,7 +52,9 @@ it('supprime après confirmation puis retourne à la liste (F-07)', async () => vi.mocked(cardsApi.remove).mockResolvedValue(undefined as never) render() await userEvent.click(screen.getByRole('button', { name: 'Supprimer' })) - await userEvent.click(within(screen.getByRole('dialog')).getByRole('button', { name: 'Supprimer' })) + await userEvent.click( + within(screen.getByRole('dialog')).getByRole('button', { name: 'Supprimer' }), + ) expect(cardsApi.remove).toHaveBeenCalledWith('c1') expect(routerMock.push).toHaveBeenCalledWith('/cards') expect(routerMock.refresh).toHaveBeenCalled() diff --git a/src/components/card-detail.test.tsx b/src/components/card-detail.test.tsx index bff58eb..6c0ad1a 100644 --- a/src/components/card-detail.test.tsx +++ b/src/components/card-detail.test.tsx @@ -1,5 +1,5 @@ import { render, screen } from '@testing-library/react' -import { beforeEach, describe, expect, it, vi } from 'vitest' +import { beforeEach, expect, it, vi } from 'vitest' import { CardDetail } from './card-detail' vi.mock('@/lib/api-client', () => { @@ -27,6 +27,8 @@ const CARD = { response: 'Un snapshot du projet', theme: 'git', tags: ['snapshot'], + createdAt: new Date('2026-01-01T08:00:00Z'), + updatedAt: new Date('2026-01-01T08:00:00Z'), } beforeEach(() => { diff --git a/src/components/card-detail.tsx b/src/components/card-detail.tsx index e04d52e..a6834b6 100644 --- a/src/components/card-detail.tsx +++ b/src/components/card-detail.tsx @@ -1,3 +1,5 @@ +'use client' + import Link from 'next/link' import { useEffect, useState } from 'react' import type { Card } from '@/domain/card' @@ -25,7 +27,11 @@ export function CardDetail({ cardId }: { cardId: string }) { }, [cardId]) if (error) { - return

{error}

+ return ( +

+ {error} +

+ ) } if (card === null) { return

Chargement…

@@ -46,21 +52,24 @@ export function CardDetail({ cardId }: { cardId: string }) { {card.tags.length > 0 && (
    {card.tags.map((tag) => ( -
  • +
  • #{tag}
  • ))}
)}
- + Modifier · - + Retour à la liste
diff --git a/src/components/card-form.test.tsx b/src/components/card-form.test.tsx index 6631281..70ba592 100644 --- a/src/components/card-form.test.tsx +++ b/src/components/card-form.test.tsx @@ -1,10 +1,12 @@ import { render, screen } from '@testing-library/react' import userEvent from '@testing-library/user-event' -import { beforeEach, describe, expect, it, vi } from 'vitest' +import { beforeEach, expect, it, vi } from 'vitest' import { CardForm } from './card-form' vi.mock('@/lib/api-client', () => ({ - ApiClientError: class extends Error { status = 0 }, + ApiClientError: class extends Error { + status = 0 + }, cardsApi: { create: vi.fn(), update: vi.fn() }, })) diff --git a/src/components/card-form.tsx b/src/components/card-form.tsx index 903d0e4..ddae030 100644 --- a/src/components/card-form.tsx +++ b/src/components/card-form.tsx @@ -43,7 +43,9 @@ export function CardForm({ mode, cardId, initial }: CardFormProps) { return (
{error && ( -

{error}

+

+ {error} +

)}