import { describe, expect, it } from "vitest"; import { matchesAutomationActionFilter } from "@shared/automationActions"; describe("matchesAutomationActionFilter", () => { it("filtre chaque type d’action métier", () => { const actions = JSON.stringify({ typeAchat: "OPEX", serviceConcerne: "DSI SANTINOVA", ventilationComptable: "SANTINOVA", }); expect(matchesAutomationActionFilter(actions, "typeAchat")).toBe(true); expect(matchesAutomationActionFilter(actions, "serviceConcerne")).toBe(true); expect(matchesAutomationActionFilter(actions, "ventilationComptable")).toBe(true); expect(matchesAutomationActionFilter(actions, "subscription")).toBe(false); }); it("distingue les règles Abonnement Oui et Non", () => { expect(matchesAutomationActionFilter('{"isSubscription":1}', "subscription")).toBe(true); expect(matchesAutomationActionFilter('{"isSubscription":1}', "subscriptionYes")).toBe(true); expect(matchesAutomationActionFilter('{"isSubscription":1}', "subscriptionNo")).toBe(false); expect(matchesAutomationActionFilter('{"isSubscription":0}', "subscriptionYes")).toBe(false); expect(matchesAutomationActionFilter('{"isSubscription":0}', "subscriptionNo")).toBe(true); }); it("tolère les règles historiques invalides sans masquer le filtre Toutes les actions", () => { expect(matchesAutomationActionFilter("json-invalide", "all")).toBe(true); expect(matchesAutomationActionFilter("json-invalide", "subscription")).toBe(false); }); });