/** * @jest-environment jsdom */ const fs = require("fs"); const path = require("path"); describe("calculate() Snapshot Tests", () => { let calculate; let snapshotFile; beforeEach(() => { // Standard: irgendeine Datei setzen, falls Test nichts setzt snapshotFile = "snapshot_default.csv"; // DOM erzeugen document.body.innerHTML = ` `; // Fetch dynamisch mocken global.fetch = jest.fn(async () => { const csvPath = path.join(__dirname, "snapshots", snapshotFile); const csvContent = fs.readFileSync(csvPath, "utf8"); return { ok: true, headers: { get: () => "text/csv" }, text: async () => csvContent }; }); // Modul erst JETZT laden (DOM existiert) ({ calculate } = require("../public/calculateActions.js")); }); // ✅ Beispiel 1: Die Datei aus deiner Frage test("Snapshot 1774805028717 wird korrekt geladen", async () => { snapshotFile = "snapshot_video0_1774805028717_two_cam.csv"; var result = await calculate(); expect(global.fetch).toHaveBeenCalledWith("/api/latest-snapshot"); // Problem: (zMotor = -137.28° = -2.3960 rad) aus roll_deg von ID = 226 //console.log("Berechnungsergebnis:", result.features["forearm.angleZ"].valueDeg); }); test("Snapshot 1774805028717 wird korrekt geladen", async () => { snapshotFile = "snapshot_video0_1774805686335_two_cam.csv"; await calculate(); expect(global.fetch).toHaveBeenCalledWith("/api/latest-snapshot"); //const logValue = document.getElementById("analysis-log").value; //console.log("Log Value:", logValue); //expect(logValue).toMatch(/Starte Berechnung/); //expect(logValue).toMatch(/CSV-Daten geladen/); }); test("Snapshot 1775053356508 wird korrekt geladen. Hatte in der Vergangenheit Fehler", async () => { snapshotFile = "snapshot_video0_1775053356508_two_cam.csv"; await calculate(); expect(global.fetch).toHaveBeenCalledWith("/api/latest-snapshot"); //expect(logValue).toMatch(/Starte Berechnung/); //expect(logValue).toMatch(/CSV-Daten geladen/); }); test("Snapshot video0_1775055007798 wird korrekt geladen. Hatte in der Vergangenheit Fehler", async () => { snapshotFile = "snapshot_video0_1775055007798_two_cam.csv"; var result =await calculate(); expect(global.fetch).toHaveBeenCalledWith("/api/latest-snapshot"); var valueDeg = result.features["forearm.angleZ"].valueDeg //expect(valueDeg).toBeCloseTo(0, 10); // Erwartet ca. -137.28° mit 1 Dezimalstelle Genauigkeit //expect(logValue).toMatch(/Starte Berechnung/); //expect(logValue).toMatch(/CSV-Daten geladen/); }); });