Skip to content

Commit 7d717e1

Browse files
committed
fix: 1101 correctifs saisie adresse plus validation (add test)
1 parent 0f8cfd5 commit 7d717e1

1 file changed

Lines changed: 89 additions & 0 deletions

File tree

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import { normalizeAdresse } from "./normalizeAdresse";
2+
3+
describe("normalizeAdresse", () => {
4+
it("should throw if adresse is null", () => {
5+
expect(() => normalizeAdresse(null)).toThrow(
6+
"normalizeAdresse: adresse is required",
7+
);
8+
});
9+
10+
it("should throw if adresse is missing required fields", () => {
11+
expect(() => normalizeAdresse({})).toThrow(
12+
"normalizeAdresse: adresse is missing required fields",
13+
);
14+
expect(() => normalizeAdresse({ label: "foo" })).toThrow(
15+
"normalizeAdresse: adresse is missing required fields",
16+
);
17+
});
18+
19+
it("should return a valid AdresseDto when all required fields are present", () => {
20+
const input = {
21+
codeInsee: "12345",
22+
codePostal: "75000",
23+
coordinates: [2.35, 48.85],
24+
departement: "75",
25+
label: "12 rue de Paris",
26+
};
27+
const result = normalizeAdresse(input);
28+
expect(result.label).toBe("12 rue de Paris");
29+
expect(result.codeInsee).toBe("12345");
30+
expect(result.codePostal).toBe("75000");
31+
expect(result.departement).toBe("75");
32+
expect(result.coordinates).toEqual([2.35, 48.85]);
33+
expect(result.lat).toBe("48.85");
34+
expect(result.long).toBe("2.35");
35+
});
36+
37+
it("should build coordinates from lat/long if coordinates is missing", () => {
38+
const input = {
39+
codeInsee: "12345",
40+
codePostal: "75000",
41+
departement: "75",
42+
label: "12 rue de Paris",
43+
lat: "48.85",
44+
long: "2.35",
45+
};
46+
const result = normalizeAdresse(input);
47+
expect(result.coordinates).toEqual([2.35, 48.85]);
48+
expect(result.lat).toBe("48.85");
49+
expect(result.long).toBe("2.35");
50+
});
51+
52+
it("should set lat/long to null if coordinates are missing", () => {
53+
const input = {
54+
codeInsee: "12345",
55+
codePostal: "75000",
56+
departement: "75",
57+
label: "12 rue de Paris",
58+
};
59+
const result = normalizeAdresse(input);
60+
expect(result.coordinates).toBeNull();
61+
expect(result.lat).toBeNull();
62+
expect(result.long).toBeNull();
63+
});
64+
65+
it("should handle coordinates with null values", () => {
66+
const input = {
67+
codeInsee: "12345",
68+
codePostal: "75000",
69+
coordinates: null,
70+
departement: "75",
71+
label: "12 rue de Paris",
72+
};
73+
const result = normalizeAdresse(input);
74+
expect(result.coordinates).toBeNull();
75+
expect(result.lat).toBeNull();
76+
expect(result.long).toBeNull();
77+
});
78+
79+
it("should throw if a required field is undefined", () => {
80+
expect(() =>
81+
normalizeAdresse({
82+
codeInsee: "12345",
83+
codePostal: "75000",
84+
departement: "75",
85+
label: undefined,
86+
}),
87+
).toThrow("normalizeAdresse: adresse is missing required fields");
88+
});
89+
});

0 commit comments

Comments
 (0)