Skip to content

Commit a57bc74

Browse files
authored
Merge branch 'alpha' into fix/my-space-side-panel
2 parents 3af41aa + 41e4e53 commit a57bc74

18 files changed

Lines changed: 31 additions & 130 deletions

packages/app/src/e2e/public-referents.e2e.ts

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ test.describe("public referents search", () => {
7676
const page = await anonCtx.newPage();
7777
await page.goto("/referents");
7878
await expect(
79-
page.getByText(/remplissez au moins un filtre/i),
79+
page.getByText(/sélectionnez au moins un filtre/i),
8080
).toBeVisible();
8181
await expect(page.getByText("E2E Référent Paris")).not.toBeVisible();
8282
} finally {
@@ -113,32 +113,12 @@ test.describe("public referents search", () => {
113113
}
114114
});
115115

116-
test("search by name filters the results", async ({ browser }) => {
116+
test("name-search input is not exposed", async ({ browser }) => {
117117
const anonCtx = await browser.newContext({ storageState: undefined });
118118
try {
119119
const page = await anonCtx.newPage();
120120
await page.goto("/referents");
121-
await page.getByLabel("Nom du référent").fill("Rennes");
122-
await page.getByRole("button", { name: /^rechercher$/i }).click();
123-
124-
await expect(page.getByText("E2E Référent Rennes")).toBeVisible();
125-
await expect(page.getByText("E2E Référent Paris")).not.toBeVisible();
126-
} finally {
127-
await anonCtx.close();
128-
}
129-
});
130-
131-
test("search with no matches shows the empty state", async ({ browser }) => {
132-
const anonCtx = await browser.newContext({ storageState: undefined });
133-
try {
134-
const page = await anonCtx.newPage();
135-
await page.goto("/referents");
136-
await page
137-
.getByLabel("Nom du référent")
138-
.fill("ZZZZ-nonexistent-name-XXX");
139-
await page.getByRole("button", { name: /^rechercher$/i }).click();
140-
141-
await expect(page.getByText(/aucun référent/i)).toBeVisible();
121+
await expect(page.getByLabel("Nom du référent")).toHaveCount(0);
142122
} finally {
143123
await anonCtx.close();
144124
}

packages/app/src/modules/admin/referents/AdminReferentsPage.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ function ReferentsContent() {
113113
} = useImportModal();
114114

115115
const input = {
116-
query: searchParams.get("query") ?? undefined,
117116
region: (searchParams.get("region") as RegionCode) || undefined,
118117
county: (searchParams.get("county") as CountyCode) || undefined,
119118
page: Number(searchParams.get("page") ?? "1"),

packages/app/src/modules/admin/referents/SearchForm.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
"use client";
22

3+
// Direct import (not via `~/modules/referents` barrel) to avoid pulling
4+
// server-only transitive imports (auth → db → postgres) into this client
5+
// component bundle. The barrel re-exports server components that drag them in.
36
import { ReferentsSearchForm } from "~/modules/referents/shared/ReferentsSearchForm";
47

58
import { searchReferentsFormSchema } from "./schemas";
@@ -11,7 +14,6 @@ export function SearchForm() {
1114
emptyCountyLabel="Tous"
1215
emptyRegionLabel="Toutes"
1316
fieldPrefix="search"
14-
order="query-first"
1517
schema={searchReferentsFormSchema}
1618
/>
1719
);

packages/app/src/modules/admin/referents/__tests__/SearchForm.test.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,24 @@ describe("SearchForm", () => {
3737

3838
it("pushes a URL with the submitted filters on search", async () => {
3939
render(<SearchForm />);
40-
fireEvent.input(screen.getByLabelText("Nom du référent"), {
41-
target: { value: "Jean" },
42-
});
4340
fireEvent.change(screen.getByLabelText("Région"), {
4441
target: { value: "11" },
4542
});
4643
fireEvent.click(screen.getByRole("button", { name: "Rechercher" }));
4744

4845
await waitFor(() => {
4946
expect(routerPush).toHaveBeenCalledWith(
50-
expect.stringMatching(/\/admin\/liste-referents\?.*query=Jean/),
47+
expect.stringMatching(/\/admin\/liste-referents\?.*region=11/),
5148
);
5249
});
53-
expect(routerPush).toHaveBeenCalledWith(expect.stringMatching(/region=11/));
5450
expect(routerPush).toHaveBeenCalledWith(expect.stringMatching(/page=1/));
5551
});
5652

53+
it("does not render a name-search input", () => {
54+
render(<SearchForm />);
55+
expect(screen.queryByLabelText(/nom du référent/i)).toBeNull();
56+
});
57+
5758
it("resets and pushes the base URL on Réinitialiser", () => {
5859
render(<SearchForm />);
5960
fireEvent.click(screen.getByRole("button", { name: "Réinitialiser" }));

packages/app/src/modules/admin/referents/__tests__/schemas.test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ describe("searchReferentsSchema", () => {
2222

2323
it("parses all fields", () => {
2424
const result = searchReferentsSchema.parse({
25-
query: "Dupont",
2625
region: "11",
2726
county: "75",
2827
page: "2",
@@ -31,7 +30,6 @@ describe("searchReferentsSchema", () => {
3130
sortOrder: "desc",
3231
});
3332
expect(result).toEqual({
34-
query: "Dupont",
3533
region: "11",
3634
county: "75",
3735
page: 2,

packages/app/src/modules/admin/referents/schemas.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ export type SortColumn = (typeof SORT_COLUMNS)[number];
1616
export const DEFAULT_PAGE_SIZE = 20;
1717

1818
export const searchReferentsSchema = z.object({
19-
query: z.string().optional(),
2019
region: z.enum(REGION_CODES).optional().or(z.literal("")),
2120
county: z.enum(COUNTY_CODES).optional().or(z.literal("")),
2221
page: z.coerce.number().int().min(1).default(1),
@@ -29,7 +28,6 @@ export type SearchReferentsInput = z.input<typeof searchReferentsSchema>;
2928
export type SearchReferentsOutput = z.output<typeof searchReferentsSchema>;
3029

3130
export const searchReferentsFormSchema = z.object({
32-
query: z.string().optional(),
3331
region: z.string().optional(),
3432
county: z.string().optional(),
3533
});

packages/app/src/modules/referents/PublicReferentsPage.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ function ReferentsContent() {
1717
const searchParams = useSearchParams();
1818

1919
const input = {
20-
query: searchParams.get("query") ?? undefined,
2120
region: (searchParams.get("region") as RegionCode) || undefined,
2221
county: (searchParams.get("county") as CountyCode) || undefined,
2322
page: Number(searchParams.get("page") ?? "1"),
@@ -27,7 +26,7 @@ function ReferentsContent() {
2726
// Require at least one filter before hitting the search endpoint — the full
2827
// referent list must never be returned (anti-harvest + UX: forcing a filter
2928
// gives results users actually need instead of a paginated dump).
30-
const hasFilter = Boolean(input.query || input.region || input.county);
29+
const hasFilter = Boolean(input.region || input.county);
3130

3231
const { data, isLoading, isError } = api.publicReferents.search.useQuery(
3332
input,
@@ -48,8 +47,8 @@ function ReferentsContent() {
4847
<PublicReferentsSearchForm />
4948
{!hasFilter && (
5049
<p className="fr-text--lg fr-text-mention--grey fr-my-4w">
51-
Remplissez au moins un filtre (nom, région ou département) pour lancer
52-
la recherche.
50+
Sélectionnez au moins un filtre (région ou département) pour lancer la
51+
recherche.
5352
</p>
5453
)}
5554
{hasFilter && isLoading && !data && (

packages/app/src/modules/referents/PublicReferentsSearchForm.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ export function PublicReferentsSearchForm() {
88
<ReferentsSearchForm
99
basePath="/referents"
1010
fieldPrefix="referents"
11-
queryPlaceholder="Ex : Durand"
12-
queryType="search"
1311
schema={publicSearchReferentsFormSchema}
1412
wrapFieldsInFieldset
1513
/>

packages/app/src/modules/referents/__tests__/PublicReferentsPage.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ describe("PublicReferentsPage", () => {
6868
expect.objectContaining({ enabled: false }),
6969
);
7070
expect(
71-
screen.getByText(/remplissez au moins un filtre/i),
71+
screen.getByText(/sélectionnez au moins un filtre/i),
7272
).toBeInTheDocument();
7373
});
7474

packages/app/src/modules/referents/__tests__/PublicReferentsSearchForm.test.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ describe("PublicReferentsSearchForm", () => {
1717
mockPush.mockClear();
1818
});
1919

20-
it("renders region, county and name inputs", () => {
20+
it("renders region and county selects only", () => {
2121
render(<PublicReferentsSearchForm />);
2222
expect(screen.getByLabelText(/région/i)).toBeInTheDocument();
2323
expect(screen.getByLabelText(/département/i)).toBeInTheDocument();
24-
expect(screen.getByLabelText(/nom du référent/i)).toBeInTheDocument();
24+
expect(screen.queryByLabelText(/nom du référent/i)).toBeNull();
2525
});
2626

2727
it("disables the county select until a region is chosen", () => {
@@ -49,19 +49,13 @@ describe("PublicReferentsSearchForm", () => {
4949
fireEvent.change(screen.getByLabelText(/région/i), {
5050
target: { value: "11" },
5151
});
52-
fireEvent.input(screen.getByLabelText(/nom du référent/i), {
53-
target: { value: "durand" },
54-
});
5552
fireEvent.click(screen.getByRole("button", { name: /^rechercher$/i }));
5653

5754
await waitFor(() => {
5855
expect(mockPush).toHaveBeenCalledWith(
5956
expect.stringMatching(/\/referents\?.*region=11/),
6057
);
6158
});
62-
expect(mockPush).toHaveBeenCalledWith(
63-
expect.stringMatching(/query=durand/),
64-
);
6559
expect(mockPush).toHaveBeenCalledWith(expect.stringMatching(/page=1/));
6660
});
6761

0 commit comments

Comments
 (0)