Checkpoint: Ajout du déclenchement manuel pour les connecteurs web SFR : confirmation explicite, automate Chromium côté serveur, récupération des PDF par session authentifiée et injection dans le flux existant de stockage/dédoublonnage/analyse. Le bouton est désactivé pour les types sans moteur réellement livré. Le résultat affiche factures importées et doublons, sans créer de planification. Chromium et playwright-core sont intégrés à l’image. Validation locale : 77 tests, TypeScript et build.
This commit is contained in:
28
server/manualWebImport.test.ts
Normal file
28
server/manualWebImport.test.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
getManualWebImportAvailability,
|
||||
runManualWebImport,
|
||||
summarizeManualWebImport,
|
||||
} from "./manualWebImport";
|
||||
|
||||
describe("manual web import", () => {
|
||||
it("autorise uniquement le connecteur SFR actuellement implémenté", () => {
|
||||
expect(getManualWebImportAvailability("sfr")).toEqual({ available: true });
|
||||
expect(getManualWebImportAvailability("starlink")).toMatchObject({ available: false });
|
||||
});
|
||||
|
||||
it("agrège les résultats d’envoi sans exposer de données de connexion", () => {
|
||||
expect(
|
||||
summarizeManualWebImport([
|
||||
{ imported: 2, duplicates: 1, total: 3 },
|
||||
{ imported: 0, duplicates: 1, total: 1 },
|
||||
]),
|
||||
).toEqual({ imported: 2, duplicates: 2, total: 4 });
|
||||
});
|
||||
|
||||
it("refuse un type non pris en charge avant de démarrer le navigateur", async () => {
|
||||
await expect(
|
||||
runManualWebImport({ connectorType: "starlink" } as any),
|
||||
).rejects.toThrow("n’est pas encore disponible");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user