Files
demat-facturation/server/disputeNavigation.test.ts
Manus a6d90a90c3
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 2m14s
feat: ajouter les factures litiges et leurs commentaires (recette)
2026-11-03 14:45:05 +00:00

65 lines
2.0 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
buildDisputeDetailLocation,
getBapReturnLocation,
} from "../client/src/lib/bapNavigation";
describe("navigation Factures litiges", () => {
it("ouvre le détail avec un contexte explicite de retour Litiges", () => {
expect(buildDisputeDetailLocation(42)).toBe(
"/invoices/42?returnTo=disputes"
);
expect(getBapReturnLocation("?returnTo=disputes")).toBe(
"/invoices-disputes"
);
});
it("conserve une recherche fournisseur, numéro ou commentaire avec caractères spéciaux", () => {
const location = buildDisputeDetailLocation(
18,
"Facture été & livraison\nà revoir"
);
const search = location.slice(location.indexOf("?"));
expect(new URLSearchParams(search).get("q")).toBe(
"Facture été & livraison\nà revoir"
);
expect(getBapReturnLocation(search)).toBe(
"/invoices-disputes?q=Facture+%C3%A9t%C3%A9+%26+livraison%0A%C3%A0+revoir"
);
});
it("ignore les paramètres étrangers au contexte Litiges", () => {
expect(
getBapReturnLocation(
"returnTo=disputes&q=retard&status=exported&year=2026&redirect=https%3A%2F%2Fexample.com"
)
).toBe("/invoices-disputes?q=retard");
});
it("ne propage pas une recherche vide", () => {
expect(getBapReturnLocation("?returnTo=disputes&q=")).toBe(
"/invoices-disputes"
);
});
it("refuse les destinations de retour arbitraires", () => {
expect(getBapReturnLocation("?returnTo=https%3A%2F%2Fexample.com")).toBe(
"/invoices"
);
expect(getBapReturnLocation("?returnTo=%2Finvoices-disputes")).toBe(
"/invoices"
);
expect(getBapReturnLocation("")).toBe("/invoices");
});
it("conserve le retour historique aux factures BAP", () => {
expect(
getBapReturnLocation(
"?returnTo=bap&q=fournisseur&year=2026&month=05&sort=invoiceDate&dir=asc"
)
).toBe(
"/invoices-bap?q=fournisseur&year=2026&month=05&sort=invoiceDate&dir=asc"
);
});
});