27 lines
1.3 KiB
TypeScript
27 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
||
import { findMatchingExportRule } from "../shared/exportAutomation";
|
||
|
||
const rules = [
|
||
{ isActive: 1, priority: 2, conditionField: "recipientName" as const, conditionValue: "Direction générale" },
|
||
{ isActive: 1, priority: 1, conditionField: "ventilationComptable" as const, conditionValue: "615200" },
|
||
{ isActive: 0, priority: 0, conditionField: "recipientName" as const, conditionValue: "Direction générale" },
|
||
];
|
||
|
||
describe("règles de destination d’export", () => {
|
||
it("sélectionne une règle de ventilation active", () => {
|
||
expect(findMatchingExportRule(rules, { recipientName: "Direction générale", ventilationComptable: "615200" })).toBe(rules[1]);
|
||
});
|
||
|
||
it("compare les destinataires sans tenir compte de la casse et des espaces", () => {
|
||
expect(findMatchingExportRule(rules, { recipientName: " direction GÉNÉRALE " })).toBe(rules[0]);
|
||
});
|
||
|
||
it("ignore les règles inactives", () => {
|
||
expect(findMatchingExportRule([rules[2]], { recipientName: "Direction générale" })).toBeUndefined();
|
||
});
|
||
|
||
it("ne retourne aucune règle si la facture ne correspond à aucun critère", () => {
|
||
expect(findMatchingExportRule(rules, { recipientName: "Service achats", ventilationComptable: "606000" })).toBeUndefined();
|
||
});
|
||
});
|