mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-15 19:29:03 +02:00
- Suppression de la page « Générateur Vidéo » (/remotion) : routes /api/remotion, pipeline de rendu d'images, composition ImageVideo et aperçu associé. Le générateur de Reels est conservé. - Plus de badge « New » à côté des menus. - Tableau de bord : bouton pour supprimer un Reel en échec et sa notification. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017tFkVXQDATYfw5aFtjQahi
30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { ttsPreviewSchema, videoReelParamsSchema } from "./reel";
|
|
|
|
describe("videoReelParamsSchema", () => {
|
|
it("exige une vidéo et une page, avec des messages lisibles", () => {
|
|
const result = videoReelParamsSchema.safeParse({ pageIds: [] });
|
|
expect(result.success).toBe(false);
|
|
expect(result.error?.issues.map((i) => i.message)).toContain("Vidéo requise");
|
|
});
|
|
|
|
it("applique les valeurs par défaut", () => {
|
|
const params = videoReelParamsSchema.parse({ videoMediaId: "v", pageIds: ["p"] });
|
|
expect(params).toMatchObject({ captionStyle: "bold", stabilize: false, drawText: true, musicVolume: 0.25, showLogo: true });
|
|
});
|
|
|
|
it("accepte les anciens paramètres encore stockés dans des jobs", () => {
|
|
expect(videoReelParamsSchema.safeParse({ videoMediaId: "v", pageIds: ["p"], wordDuration: 0.6 }).success).toBe(true);
|
|
});
|
|
|
|
it("refuse un moteur de voix inconnu", () => {
|
|
expect(videoReelParamsSchema.safeParse({ videoMediaId: "v", pageIds: ["p"], ttsEngine: "autre" }).success).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe("ttsPreviewSchema", () => {
|
|
it("refuse un texte vide", () => {
|
|
expect(ttsPreviewSchema.safeParse({ text: " " }).success).toBe(false);
|
|
});
|
|
});
|