Initial local backup snapshot
This commit is contained in:
commit
acd9e14ba5
367 changed files with 118038 additions and 0 deletions
85
server/associationGeo.test.ts
Normal file
85
server/associationGeo.test.ts
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
import { afterEach, describe, expect, it, vi } from "vitest";
|
||||
import { computeAssociationDirectoryGeoUpdate, computeAssociationDirectoryGeoUpdateForPrecision, getPublicMapCoordinates } from "./associationGeo";
|
||||
|
||||
describe("associationGeo", () => {
|
||||
afterEach(() => {
|
||||
vi.restoreAllMocks();
|
||||
});
|
||||
|
||||
it("returns public coordinates for visible entries and keeps hidden precision visible by policy", () => {
|
||||
const visible = getPublicMapCoordinates({
|
||||
latitude: "5.123456",
|
||||
longitude: "-52.123456",
|
||||
geoPrecision: "commune_center",
|
||||
} as any);
|
||||
|
||||
expect(visible).toEqual({
|
||||
latitude: 5.123456,
|
||||
longitude: -52.123456,
|
||||
precision: "commune_center",
|
||||
});
|
||||
|
||||
const hidden = getPublicMapCoordinates({
|
||||
latitude: "5.123456",
|
||||
longitude: "-52.123456",
|
||||
geoPrecision: "hidden",
|
||||
} as any);
|
||||
|
||||
expect(hidden).toEqual({
|
||||
latitude: 5.123456,
|
||||
longitude: -52.123456,
|
||||
precision: "exact_address",
|
||||
});
|
||||
});
|
||||
|
||||
it("geocodes the address when exact precision is requested", async () => {
|
||||
const fetchMock = vi
|
||||
.spyOn(globalThis, "fetch")
|
||||
.mockResolvedValueOnce({
|
||||
ok: true,
|
||||
json: async () => ({
|
||||
features: [
|
||||
{
|
||||
geometry: { coordinates: [-52.61, 5.08] },
|
||||
properties: { label: "Adresse test" },
|
||||
},
|
||||
],
|
||||
}),
|
||||
} as Response);
|
||||
|
||||
const result = await computeAssociationDirectoryGeoUpdateForPrecision({
|
||||
id: 1,
|
||||
nomAssociation: "Association Test",
|
||||
adresse: "1 rue Test",
|
||||
codePostal: "97310",
|
||||
ville: "Kourou",
|
||||
} as any, null, "exact_address");
|
||||
|
||||
expect(fetchMock).toHaveBeenCalledTimes(1);
|
||||
expect(result.geoSource).toBe("adresse_gouv");
|
||||
expect(result.latitude).toBe("5.080000");
|
||||
expect(result.longitude).toBe("-52.610000");
|
||||
});
|
||||
|
||||
it("falls back to commune center by default", async () => {
|
||||
vi.spyOn(globalThis, "fetch")
|
||||
.mockResolvedValueOnce({
|
||||
ok: true,
|
||||
json: async () => ([
|
||||
{ nom: "Kourou", centre: { coordinates: [-52.7767, 4.9085] } },
|
||||
]),
|
||||
} as Response);
|
||||
|
||||
const result = await computeAssociationDirectoryGeoUpdate({
|
||||
id: 1,
|
||||
nomAssociation: "Association Test",
|
||||
adresse: "Adresse introuvable",
|
||||
codePostal: "97310",
|
||||
ville: "Kourou",
|
||||
} as any);
|
||||
|
||||
expect(result.geoSource).toBe("commune_center");
|
||||
expect(result.latitude).toBe("4.908500");
|
||||
expect(result.longitude).toBe("-52.776700");
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue