feat: let the list ignore, submit and undo events from Nextcloud
Each row now shows its shared status and carries the matching gesture. Nothing is displayed before Nextcloud confirms it: on failure the status stays put and the reason is spelled out. Ignored events are greyed and pushed to the end, never hidden.
This commit is contained in:
@@ -4,6 +4,8 @@ import {
|
||||
LIEU_PAR_DEFAUT,
|
||||
formaterDate,
|
||||
formaterLieu,
|
||||
formaterStatut,
|
||||
repousserIgnores,
|
||||
trierParDebut,
|
||||
} from "./extension/presentation.js";
|
||||
|
||||
@@ -213,3 +215,44 @@ describe("formaterLieu", () => {
|
||||
expect(formaterLieu(evenement({ lieu: " " }))).toBe(LIEU_PAR_DEFAUT);
|
||||
});
|
||||
});
|
||||
|
||||
describe("formaterStatut", () => {
|
||||
test("soumis avec date → « Soumis le JJ/MM »", () => {
|
||||
expect(formaterStatut({ type: "soumis", jour: "2026-08-13" })).toBe("Soumis le 13/08");
|
||||
});
|
||||
|
||||
test("soumis sans date exploitable → « Soumis »", () => {
|
||||
expect(formaterStatut({ type: "soumis", jour: null })).toBe("Soumis");
|
||||
});
|
||||
|
||||
test("ignoré → « Ignoré » ; aucun → rien à afficher", () => {
|
||||
expect(formaterStatut({ type: "ignoré" })).toBe("Ignoré");
|
||||
expect(formaterStatut({ type: "aucun" })).toBe("");
|
||||
});
|
||||
});
|
||||
|
||||
describe("repousserIgnores", () => {
|
||||
test("les ignorés passent en fin, l'ordre relatif est conservé", () => {
|
||||
const evenements = [
|
||||
evenement({ uid: "a" }),
|
||||
evenement({ uid: "ignore-1", categories: ["mairie:ignoré"] }),
|
||||
evenement({ uid: "b", categories: ["Concert"] }),
|
||||
evenement({ uid: "ignore-2", categories: ["Concert", "mairie:ignoré"] }),
|
||||
evenement({ uid: "c", categories: ["mairie:soumis:2026-08-13"] }),
|
||||
];
|
||||
|
||||
expect(repousserIgnores(evenements).map((e) => e.uid)).toEqual([
|
||||
"a",
|
||||
"b",
|
||||
"c",
|
||||
"ignore-1",
|
||||
"ignore-2",
|
||||
]);
|
||||
});
|
||||
|
||||
test("liste sans ignoré → inchangée, sans mutation de l'entrée", () => {
|
||||
const evenements = [evenement({ uid: "a" }), evenement({ uid: "b" })];
|
||||
expect(repousserIgnores(evenements).map((e) => e.uid)).toEqual(["a", "b"]);
|
||||
expect(evenements.map((e) => e.uid)).toEqual(["a", "b"]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user