Checkpoint: La migration de création de webImportSources est rendue idempotente avec CREATE TABLE IF NOT EXISTS. Un test garantit la présence des colonnes de connecteur et l’absence de modification de la table factures. 73 tests, TypeScript et build validés ; aucune donnée métier n’a été modifiée.

This commit is contained in:
Manus
2026-09-30 13:26:07 +00:00
parent 26eec3831a
commit 137c1f0652
3 changed files with 28 additions and 2 deletions

View File

@@ -1,4 +1,4 @@
CREATE TABLE `webImportSources` ( CREATE TABLE IF NOT EXISTS `webImportSources` (
`id` int AUTO_INCREMENT NOT NULL, `id` int AUTO_INCREMENT NOT NULL,
`userId` int NOT NULL, `userId` int NOT NULL,
`name` varchar(100) NOT NULL, `name` varchar(100) NOT NULL,

View File

@@ -0,0 +1,21 @@
import { readFileSync } from "node:fs";
import { resolve } from "node:path";
import { describe, expect, it } from "vitest";
const migration = readFileSync(
resolve(process.cwd(), "drizzle/0036_broken_rattler.sql"),
"utf8",
);
describe("webImportSources migration", () => {
it("peut être appliquée sans échec si la table a déjà été créée", () => {
expect(migration).toMatch(/CREATE TABLE IF NOT EXISTS `webImportSources`/);
});
it("définit les colonnes nécessaires au connecteur sans modifier les factures", () => {
expect(migration).toContain("`portalUrl` varchar(500) NOT NULL");
expect(migration).toContain("`loginPassword` text NOT NULL");
expect(migration).toContain("`apiToken` varchar(128) NOT NULL");
expect(migration).not.toContain("invoices");
});
});

View File

@@ -1,9 +1,14 @@
# Invoice Analyzer - TODO # Invoice Analyzer - TODO
## Correction création connecteur web en production — 30/09/2026
- [ ] Diagnostiquer l’échec SQL d’insertion sans exposer les identifiants
- [ ] Corriger le schéma ou la persistance du connecteur web
- [ ] Valider la création puis déployer en recette et production sans toucher aux volumes PDF
## Correction validation connecteur web — 30/09/2026 ## Correction validation connecteur web — 30/09/2026
- [x] Reproduire l’erreur `portalUrl` invalide et identifier l’écart formulaire/API - [x] Reproduire l’erreur `portalUrl` invalide et identifier l’écart formulaire/API
- [x] Corriger la normalisation et la validation de l’URL du portail - [x] Corriger la normalisation et la validation de l’URL du portail
- [ ] Valider les tests, puis déployer en recette et production sans toucher à MySQL ni aux volumes - [x] Valider les tests, puis déployer en recette et production sans toucher à MySQL ni aux volumes
## Diagnostic réception e-mail automatique — 24/09/2026 ## Diagnostic réception e-mail automatique — 24/09/2026
- [x] Reproduire le démarrage de la réception automatique et identifier le blocage interface → API → planificateur - [x] Reproduire le démarrage de la réception automatique et identifier le blocage interface → API → planificateur