feat: ajouter les factures litiges et leurs commentaires (recette)
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 2m14s
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 2m14s
This commit is contained in:
64
server/disputeNavigation.test.ts
Normal file
64
server/disputeNavigation.test.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
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"
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user